diff --git a/404.html b/404.html index e2540cc35..67ecde126 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | IoCuak - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/js/028691c8.96833354.js b/assets/js/028691c8.bf054f18.js similarity index 99% rename from assets/js/028691c8.96833354.js rename to assets/js/028691c8.bf054f18.js index e7f97a77c..a15e5da35 100644 --- a/assets/js/028691c8.96833354.js +++ b/assets/js/028691c8.bf054f18.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8129],{9613:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),o=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=o(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=o(a),u=r,k=d["".concat(c,".").concat(u)]||d[u]||m[u]||s;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,l=new Array(s);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var o=2;o{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>o});var n=a(7366),r=(a(9496),a(9613));const s={sidebar_position:2,title:"Class metadata"},l=void 0,i={unversionedId:"concepts/class-metadata",id:"version-0.3.1/concepts/class-metadata",title:"Class metadata",description:"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.",source:"@site/versioned_docs/version-0.3.1/concepts/class-metadata.md",sourceDirName:"concepts",slug:"/concepts/class-metadata",permalink:"/iocuak-docs/docs/0.3.1/concepts/class-metadata",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Class metadata"},sidebar:"sidebar",previous:{title:"Binding",permalink:"/iocuak-docs/docs/0.3.1/concepts/binding"},next:{title:"Container API",permalink:"/iocuak-docs/docs/0.3.1/api/container"}},c={},o=[{value:"ClassElementMetadata",id:"classelementmetadata",level:2},{value:"ClassElementServiceIdMetadata",id:"classelementserviceidmetadata",level:3},{value:"ClassElementTagMetadataApi",id:"classelementtagmetadataapi",level:3}],p={toc:o},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"constructorArguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Constructor arguments metadata"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadata")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"properties"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Properties metadata."),(0,r.kt)("td",{parentName:"tr",align:"center"},"Map")))),(0,r.kt)("h2",{id:"classelementmetadata"},"ClassElementMetadata"),(0,r.kt)("p",null,"Class element metadata can be of two different kinds:"),(0,r.kt)("h3",{id:"classelementserviceidmetadata"},"ClassElementServiceIdMetadata"),(0,r.kt)("p",null,"Represents a service dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.serviceId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,r.kt)("h3",{id:"classelementtagmetadataapi"},"ClassElementTagMetadataApi"),(0,r.kt)("p",null,"Represents services associated to a tag dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.tag")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tag associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8129],{9613:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),o=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=o(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=o(a),u=r,k=d["".concat(c,".").concat(u)]||d[u]||m[u]||s;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,l=new Array(s);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var o=2;o{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>o});var n=a(7366),r=(a(9496),a(9613));const s={sidebar_position:2,title:"Class metadata"},l=void 0,i={unversionedId:"concepts/class-metadata",id:"version-0.3.1/concepts/class-metadata",title:"Class metadata",description:"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.",source:"@site/versioned_docs/version-0.3.1/concepts/class-metadata.md",sourceDirName:"concepts",slug:"/concepts/class-metadata",permalink:"/iocuak-docs/docs/0.3.1/concepts/class-metadata",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Class metadata"},sidebar:"sidebar",previous:{title:"Binding",permalink:"/iocuak-docs/docs/0.3.1/concepts/binding"},next:{title:"Container API",permalink:"/iocuak-docs/docs/0.3.1/api/container"}},c={},o=[{value:"ClassElementMetadata",id:"classelementmetadata",level:2},{value:"ClassElementServiceIdMetadata",id:"classelementserviceidmetadata",level:3},{value:"ClassElementTagMetadataApi",id:"classelementtagmetadataapi",level:3}],p={toc:o},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"constructorArguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Constructor arguments metadata"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadata")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"properties"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Properties metadata."),(0,r.kt)("td",{parentName:"tr",align:"center"},"Map")))),(0,r.kt)("h2",{id:"classelementmetadata"},"ClassElementMetadata"),(0,r.kt)("p",null,"Class element metadata can be of two different kinds:"),(0,r.kt)("h3",{id:"classelementserviceidmetadata"},"ClassElementServiceIdMetadata"),(0,r.kt)("p",null,"Represents a service dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.serviceId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,r.kt)("h3",{id:"classelementtagmetadataapi"},"ClassElementTagMetadataApi"),(0,r.kt)("p",null,"Represents services associated to a tag dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.tag")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tag associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/05a46859.1b3261bc.js b/assets/js/05a46859.2d4e98b3.js similarity index 98% rename from assets/js/05a46859.1b3261bc.js rename to assets/js/05a46859.2d4e98b3.js index 6b9d2969f..1a71230db 100644 --- a/assets/js/05a46859.1b3261bc.js +++ b/assets/js/05a46859.2d4e98b3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6943],{9613:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:3,title:"Creating instances"},i=void 0,c={unversionedId:"tutorial/the-container-object/creating-instances",id:"version-0.3.1/tutorial/the-container-object/creating-instances",title:"Creating instances",description:"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated",source:"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/creating-instances.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/creating-instances",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances",draft:!1,tags:[],version:"0.3.1",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Creating instances"},sidebar:"sidebar",previous:{title:"Binding a service",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container, injectable } from '@cuaklabs/iocuak';\n\n@injectable()\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\nconst dummyInstance: Dummy = container.get(Dummy);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6943],{9613:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:3,title:"Creating instances"},i=void 0,c={unversionedId:"tutorial/the-container-object/creating-instances",id:"version-0.3.1/tutorial/the-container-object/creating-instances",title:"Creating instances",description:"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated",source:"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/creating-instances.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/creating-instances",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances",draft:!1,tags:[],version:"0.3.1",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Creating instances"},sidebar:"sidebar",previous:{title:"Binding a service",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container, injectable } from '@cuaklabs/iocuak';\n\n@injectable()\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\nconst dummyInstance: Dummy = container.get(Dummy);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/08e8d5fd.6687672c.js b/assets/js/08e8d5fd.8e01ee7d.js similarity index 98% rename from assets/js/08e8d5fd.6687672c.js rename to assets/js/08e8d5fd.8e01ee7d.js index e9c3c7057..77803d430 100644 --- a/assets/js/08e8d5fd.6687672c.js +++ b/assets/js/08e8d5fd.8e01ee7d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2855],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},b=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(t),b=o,m=d["".concat(l,".").concat(b)]||d[b]||p[b]||i;return t?r.createElement(m,a(a({ref:n},s),{},{components:t})):r.createElement(m,a({ref:n},s))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Binding a service"},a=void 0,c={unversionedId:"tutorial/the-container-object/binding-a-service",id:"version-0.4.0/tutorial/the-container-object/binding-a-service",title:"Binding a service",description:"Services can be easily bound to the container calling it directly.",source:"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/binding-a-service.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/binding-a-service",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Binding a service"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction"},next:{title:"Creating instances",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances"}},l={},u=[],s={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Services can be easily bound to the container calling it directly."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container } from '@cuaklabs/iocuak';\n\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\n")),(0,o.kt)("p",null,"Services can also be bound through a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModule"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2855],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},b=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(t),b=o,m=d["".concat(l,".").concat(b)]||d[b]||p[b]||i;return t?r.createElement(m,a(a({ref:n},s),{},{components:t})):r.createElement(m,a({ref:n},s))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Binding a service"},a=void 0,c={unversionedId:"tutorial/the-container-object/binding-a-service",id:"version-0.4.0/tutorial/the-container-object/binding-a-service",title:"Binding a service",description:"Services can be easily bound to the container calling it directly.",source:"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/binding-a-service.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/binding-a-service",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Binding a service"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction"},next:{title:"Creating instances",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances"}},l={},u=[],s={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Services can be easily bound to the container calling it directly."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container } from '@cuaklabs/iocuak';\n\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\n")),(0,o.kt)("p",null,"Services can also be bound through a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModule"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0a1d241c.010eff87.js b/assets/js/0a1d241c.5ca46421.js similarity index 99% rename from assets/js/0a1d241c.010eff87.js rename to assets/js/0a1d241c.5ca46421.js index c410b6776..acf545a33 100644 --- a/assets/js/0a1d241c.010eff87.js +++ b/assets/js/0a1d241c.5ca46421.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6334],{9613:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var d=n.createContext({}),c=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=c(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,d=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(a),s=r,k=p["".concat(d,".").concat(s)]||p[s]||m[s]||o;return a?n.createElement(k,i(i({ref:t},u),{},{components:a})):n.createElement(k,i({ref:t},u))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=a(7366),r=(a(9496),a(9613));const o={sidebar_position:3,title:"Container module metadata"},i=void 0,l={unversionedId:"concepts/container-module-metadata",id:"concepts/container-module-metadata",title:"Container module metadata",description:"Represents configuration to build and load a container module.",source:"@site/docs/concepts/container-module-metadata.md",sourceDirName:"concepts",slug:"/concepts/container-module-metadata",permalink:"/iocuak-docs/docs/next/concepts/container-module-metadata",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Container module metadata"},sidebar:"sidebar",previous:{title:"Class metadata",permalink:"/iocuak-docs/docs/next/concepts/class-metadata"},next:{title:"Container API",permalink:"/iocuak-docs/docs/next/api/container"}},d={},c=[{value:"ContainerModuleFactoryMetadata",id:"containermodulefactorymetadata",level:3},{value:"ContainerModuleClassMetadata",id:"containermoduleclassmetadata",level:3},{value:"ContainerModule",id:"containermodule",level:3},{value:"Newable<ContainerModule>",id:"newablecontainermodule",level:3}],u={toc:c},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents configuration to build and load a container module."),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleMetadata")," can be of four different different kinds:"),(0,r.kt)("h3",{id:"containermodulefactorymetadata"},"ContainerModuleFactoryMetadata"),(0,r.kt)("p",null,"Represents a container module to be built using a factory."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadataId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"imports"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Dependencies required to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"factory"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Function to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Function")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"injects"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Services to be passed as arguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ServiceId[]")))),(0,r.kt)("h3",{id:"containermoduleclassmetadata"},"ContainerModuleClassMetadata"),(0,r.kt)("p",null,"Represents a container module to be built using a decorated ContainerModule class."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadataId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"imports"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Dependencies required to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadaClass to be loaded"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Newable","<","ContainerModuleMetadata",">")))),(0,r.kt)("h3",{id:"containermodule"},"ContainerModule"),(0,r.kt)("p",null,"Represents a ContainerModule instance to be loaded. Equivalent to a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleFactoryMetadata")," with a factory with no arguments returning the module."),(0,r.kt)("h3",{id:"newablecontainermodule"},"Newable","<","ContainerModule",">"),(0,r.kt)("p",null,"Represents a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModule")," class to be instantiated in order to load a container module. Equivalent to a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleClassMetadata")," with no the class as module."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6334],{9613:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var d=n.createContext({}),c=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=c(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,d=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(a),s=r,k=p["".concat(d,".").concat(s)]||p[s]||m[s]||o;return a?n.createElement(k,i(i({ref:t},u),{},{components:a})):n.createElement(k,i({ref:t},u))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=a(7366),r=(a(9496),a(9613));const o={sidebar_position:3,title:"Container module metadata"},i=void 0,l={unversionedId:"concepts/container-module-metadata",id:"concepts/container-module-metadata",title:"Container module metadata",description:"Represents configuration to build and load a container module.",source:"@site/docs/concepts/container-module-metadata.md",sourceDirName:"concepts",slug:"/concepts/container-module-metadata",permalink:"/iocuak-docs/docs/next/concepts/container-module-metadata",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Container module metadata"},sidebar:"sidebar",previous:{title:"Class metadata",permalink:"/iocuak-docs/docs/next/concepts/class-metadata"},next:{title:"Container API",permalink:"/iocuak-docs/docs/next/api/container"}},d={},c=[{value:"ContainerModuleFactoryMetadata",id:"containermodulefactorymetadata",level:3},{value:"ContainerModuleClassMetadata",id:"containermoduleclassmetadata",level:3},{value:"ContainerModule",id:"containermodule",level:3},{value:"Newable<ContainerModule>",id:"newablecontainermodule",level:3}],u={toc:c},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents configuration to build and load a container module."),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleMetadata")," can be of four different different kinds:"),(0,r.kt)("h3",{id:"containermodulefactorymetadata"},"ContainerModuleFactoryMetadata"),(0,r.kt)("p",null,"Represents a container module to be built using a factory."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadataId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"imports"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Dependencies required to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"factory"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Function to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Function")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"injects"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Services to be passed as arguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ServiceId[]")))),(0,r.kt)("h3",{id:"containermoduleclassmetadata"},"ContainerModuleClassMetadata"),(0,r.kt)("p",null,"Represents a container module to be built using a decorated ContainerModule class."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadataId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"imports"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Dependencies required to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadaClass to be loaded"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Newable","<","ContainerModuleMetadata",">")))),(0,r.kt)("h3",{id:"containermodule"},"ContainerModule"),(0,r.kt)("p",null,"Represents a ContainerModule instance to be loaded. Equivalent to a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleFactoryMetadata")," with a factory with no arguments returning the module."),(0,r.kt)("h3",{id:"newablecontainermodule"},"Newable","<","ContainerModule",">"),(0,r.kt)("p",null,"Represents a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModule")," class to be instantiated in order to load a container module. Equivalent to a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleClassMetadata")," with no the class as module."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0c8baa8f.554932f1.js b/assets/js/0c8baa8f.1de4703d.js similarity index 55% rename from assets/js/0c8baa8f.554932f1.js rename to assets/js/0c8baa8f.1de4703d.js index 7c2415d6d..f92a85b43 100644 --- a/assets/js/0c8baa8f.554932f1.js +++ b/assets/js/0c8baa8f.1de4703d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7378],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:3,title:"injectTag"},i=void 0,c={unversionedId:"api/injection/inject-tag-decorator",id:"version-0.5.0/api/injection/inject-tag-decorator",title:"injectTag",description:"This decorator targets a property or a parameter and provides the services associated to that tag.",source:"@site/versioned_docs/version-0.5.0/api/injection/inject-tag-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-tag-decorator",permalink:"/iocuak-docs/docs/api/injection/inject-tag-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"injectTag"},sidebar:"sidebar",previous:{title:"inject",permalink:"/iocuak-docs/docs/api/injection/inject-decorator"},next:{title:"injectFromBase",permalink:"/iocuak-docs/docs/api/injection/injectFromBase-decorator"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the services associated to that tag."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectTag } from '@cuaklabs/iocuak';\n\nimport { dummyTag } from 'some/path';\n\nclass Dummy {\n @injectTag(dummyTag)\n public foo: unknown[];\n}\n\n")),(0,o.kt)("p",null,"Troperty ",(0,o.kt)("inlineCode",{parentName:"p"},"foo")," is injected with the services associated to the ",(0,o.kt)("inlineCode",{parentName:"p"},"dummyTag")," tag."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7378],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:3,title:"injectTag"},i=void 0,c={unversionedId:"api/injection/inject-tag-decorator",id:"version-0.5.0/api/injection/inject-tag-decorator",title:"injectTag",description:"This decorator targets a property or a parameter and provides the services associated to that tag.",source:"@site/versioned_docs/version-0.5.0/api/injection/inject-tag-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-tag-decorator",permalink:"/iocuak-docs/docs/api/injection/inject-tag-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"injectTag"},sidebar:"sidebar",previous:{title:"inject",permalink:"/iocuak-docs/docs/api/injection/inject-decorator"},next:{title:"injectFromBase",permalink:"/iocuak-docs/docs/api/injection/injectFromBase-decorator"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the services associated to that tag."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectTag } from '@cuaklabs/iocuak';\n\nimport { dummyTag } from 'some/path';\n\nclass Dummy {\n @injectTag(dummyTag)\n public foo: unknown[];\n}\n\n")),(0,o.kt)("p",null,"Troperty ",(0,o.kt)("inlineCode",{parentName:"p"},"foo")," is injected with the services associated to the ",(0,o.kt)("inlineCode",{parentName:"p"},"dummyTag")," tag."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0cb0b728.892909f5.js b/assets/js/0cb0b728.6cb66d57.js similarity index 98% rename from assets/js/0cb0b728.892909f5.js rename to assets/js/0cb0b728.6cb66d57.js index 55a16be71..c42ca79e0 100644 --- a/assets/js/0cb0b728.892909f5.js +++ b/assets/js/0cb0b728.6cb66d57.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[856],{9613:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>y});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=p(a),u=r,y=l["".concat(c,".").concat(u)]||l[u]||m[u]||i;return a?n.createElement(y,o(o({ref:t},s),{},{components:a})):n.createElement(y,o({ref:t},s))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[l]="string"==typeof e?e:r,o[1]=d;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=a(7366),r=(a(9496),a(9613));const i={sidebar_position:2,title:"Metadata provider"},o=void 0,d={unversionedId:"api/metadata/metadata-provider",id:"version-0.3.1/api/metadata/metadata-provider",title:"Metadata provider",description:"The MetadataProvider class is provided to easily extract metadata of a given type",source:"@site/versioned_docs/version-0.3.1/api/metadata/metadata-provider.md",sourceDirName:"api/metadata",slug:"/api/metadata/metadata-provider",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Metadata provider"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/introduction"}},c={},p=[{value:"getBindingMetadata(type)",id:"getbindingmetadatatype",level:2},{value:"getClassMetadata(type)",id:"getclassmetadatatype",level:2}],s={toc:p},l="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(l,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"MetadataProvider")," class is provided to easily extract metadata of a given type"),(0,r.kt)("h2",{id:"getbindingmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getBindingMetadata(type)")),(0,r.kt)("p",null,"Provides binding metadata associated to that type."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values (bound by ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.bindToValue()"),") do not have metadata directly associated. Those bindings can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.getAllBindings()"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst typeBindingMetadata: TypeBinding = metadataProvider.getBindingMetadata(Dummy);\n")),(0,r.kt)("h2",{id:"getclassmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getClassMetadata(type)")),(0,r.kt)("p",null,"Provides class metadata associated to that type."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[856],{9613:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>y});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=p(a),u=r,y=l["".concat(c,".").concat(u)]||l[u]||m[u]||i;return a?n.createElement(y,o(o({ref:t},s),{},{components:a})):n.createElement(y,o({ref:t},s))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[l]="string"==typeof e?e:r,o[1]=d;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=a(7366),r=(a(9496),a(9613));const i={sidebar_position:2,title:"Metadata provider"},o=void 0,d={unversionedId:"api/metadata/metadata-provider",id:"version-0.3.1/api/metadata/metadata-provider",title:"Metadata provider",description:"The MetadataProvider class is provided to easily extract metadata of a given type",source:"@site/versioned_docs/version-0.3.1/api/metadata/metadata-provider.md",sourceDirName:"api/metadata",slug:"/api/metadata/metadata-provider",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Metadata provider"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/introduction"}},c={},p=[{value:"getBindingMetadata(type)",id:"getbindingmetadatatype",level:2},{value:"getClassMetadata(type)",id:"getclassmetadatatype",level:2}],s={toc:p},l="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(l,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"MetadataProvider")," class is provided to easily extract metadata of a given type"),(0,r.kt)("h2",{id:"getbindingmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getBindingMetadata(type)")),(0,r.kt)("p",null,"Provides binding metadata associated to that type."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values (bound by ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.bindToValue()"),") do not have metadata directly associated. Those bindings can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.getAllBindings()"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst typeBindingMetadata: TypeBinding = metadataProvider.getBindingMetadata(Dummy);\n")),(0,r.kt)("h2",{id:"getclassmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getClassMetadata(type)")),(0,r.kt)("p",null,"Provides class metadata associated to that type."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/158424f1.e39d0c36.js b/assets/js/158424f1.0e92f870.js similarity index 98% rename from assets/js/158424f1.e39d0c36.js rename to assets/js/158424f1.0e92f870.js index faa385d5d..a1f837d62 100644 --- a/assets/js/158424f1.e39d0c36.js +++ b/assets/js/158424f1.0e92f870.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7094],{9613:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:3,title:"Creating instances"},i=void 0,c={unversionedId:"tutorial/the-container-object/creating-instances",id:"tutorial/the-container-object/creating-instances",title:"Creating instances",description:"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated",source:"@site/docs/tutorial/the-container-object/creating-instances.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/creating-instances",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Creating instances"},sidebar:"sidebar",previous:{title:"Binding a service",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/introduction"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container, injectable } from '@cuaklabs/iocuak';\n\n@injectable()\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\nconst dummyInstance: Dummy = container.get(Dummy);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7094],{9613:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:3,title:"Creating instances"},i=void 0,c={unversionedId:"tutorial/the-container-object/creating-instances",id:"tutorial/the-container-object/creating-instances",title:"Creating instances",description:"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated",source:"@site/docs/tutorial/the-container-object/creating-instances.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/creating-instances",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Creating instances"},sidebar:"sidebar",previous:{title:"Binding a service",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/introduction"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container, injectable } from '@cuaklabs/iocuak';\n\n@injectable()\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\nconst dummyInstance: Dummy = container.get(Dummy);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/17896441.ac74d083.js b/assets/js/17896441.ac74d083.js new file mode 100644 index 000000000..2b7b2e9a0 --- /dev/null +++ b/assets/js/17896441.ac74d083.js @@ -0,0 +1 @@ +(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7918],{9613:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{"use strict";n.r(t),n.d(t,{default:()=>Bt});var a=n(9496),o=n(2583),r=n(4327);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(5924),m=n(28),u=n(7366),p=n(9681),f=n(4603);function h(e){const{permalink:t,title:n,subLabel:o,isNext:r}=e;return a.createElement(f.Z,{className:(0,d.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},o&&a.createElement("div",{className:"pagination-nav__sublabel"},o),a.createElement("div",{className:"pagination-nav__label"},n))}function g(e){const{previous:t,next:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,p.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&a.createElement(h,(0,u.Z)({},t,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&a.createElement(h,(0,u.Z)({},n,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function b(){const{metadata:e}=s();return a.createElement(g,{previous:e.previous,next:e.next})}var v=n(4662),E=n(9222),y=n(5228),k=n(808),N=n(4177);const C={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function L(e){const t=C[e.versionMetadata.banner];return a.createElement(t,e)}function _(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(p.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(f.Z,{to:n,onClick:o},a.createElement(p.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function w(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,v.Z)(),{pluginId:r}=(0,E.gA)({failfast:!0}),{savePreferredVersionName:l}=(0,k.J)(r),{latestDocSuggestion:c,latestVersionSuggestion:s}=(0,E.Jo)(r),i=c??(m=s).docs.find((e=>e.id===m.mainDocId));var m;return a.createElement("div",{className:(0,d.Z)(t,y.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(L,{siteTitle:o,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(_,{versionLabel:s.label,to:i.path,onClick:()=>l(s.name)})))}function T(e){let{className:t}=e;const n=(0,N.E)();return n.banner?a.createElement(w,{className:t,versionMetadata:n}):null}function Z(e){let{className:t}=e;const n=(0,N.E)();return n.badge?a.createElement("span",{className:(0,d.Z)(t,y.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(p.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}function x(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function B(e){let{lastUpdatedBy:t}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function O(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:y.k.common.lastUpdated},a.createElement(p.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(x,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(B,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}const H={iconEdit:"iconEdit_mu1i"};function A(e){let{className:t,...n}=e;return a.createElement("svg",(0,u.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(H.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function j(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:y.k.common.editThisPage},a.createElement(A,null),a.createElement(p.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}const S={tag:"tag_dsT9",tagRegular:"tagRegular_S8DR",tagWithCount:"tagWithCount_H5gm"};function I(e){let{permalink:t,label:n,count:o}=e;return a.createElement(f.Z,{href:t,className:(0,d.Z)(S.tag,o?S.tagWithCount:S.tagRegular)},n,o&&a.createElement("span",null,o))}const M={tags:"tags_s874",tag:"tag_MJCD"};function P(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(p.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(M.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:M.tag},a.createElement(I,{label:t,permalink:n}))}))))}const U={lastUpdated:"lastUpdated_pCAw"};function z(e){return a.createElement("div",{className:(0,d.Z)(y.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(P,e)))}function D(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(y.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(j,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",U.lastUpdated)},(n||o)&&a.createElement(O,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function V(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(y.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(z,{tags:l}),i&&a.createElement(D,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var R=n(1930),W=n(163);function $(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function q(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=q({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function F(e){const t=e.getBoundingClientRect();return t.top===t.bottom?F(e.parentNode):t}function K(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>F(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function J(e){const t=(0,a.useRef)(void 0),n=G();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=K(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function X(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(X,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const Y=a.memo(X);function Q(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,W.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,p=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>q({toc:$(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return J((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(Y,(0,u.Z)({toc:p,className:n,linkClassName:o},s))}const ee={tocCollapsibleButton:"tocCollapsibleButton_zASx",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_XkN_"};function te(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,u.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",ee.tocCollapsibleButton,!t&&ee.tocCollapsibleButtonExpanded,n.className)}),a.createElement(p.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const ne={tocCollapsible:"tocCollapsible_KKmh",tocCollapsibleContent:"tocCollapsibleContent_UAbN",tocCollapsibleExpanded:"tocCollapsibleExpanded_SuyW"};function ae(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,R.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(ne.tocCollapsible,!l&&ne.tocCollapsibleExpanded,n)},a.createElement(te,{collapsed:l,onClick:c}),a.createElement(R.z,{lazy:!0,className:ne.tocCollapsibleContent,collapsed:l},a.createElement(Q,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const oe={tocMobile:"tocMobile_RkN7"};function re(){const{toc:e,frontMatter:t}=s();return a.createElement(ae,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(y.k.docs.docTocMobile,oe.tocMobile)})}const le={tableOfContents:"tableOfContents_YRvJ",docItemContainer:"docItemContainer_f329"},ce="table-of-contents__link toc-highlight",se="table-of-contents__link--active";function ie(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(le.tableOfContents,"thin-scrollbar",t)},a.createElement(Q,(0,u.Z)({},n,{linkClassName:ce,linkActiveClassName:se})))}function de(){const{toc:e,frontMatter:t}=s();return a.createElement(ie,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:y.k.docs.docTocDesktop})}const me={anchorWithStickyNavbar:"anchorWithStickyNavbar_G0xS",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_kOCw"};function ue(e){let{as:t,id:n,...o}=e;const{navbar:{hideOnScroll:r}}=(0,W.L)();if("h1"===t||!n)return a.createElement(t,(0,u.Z)({},o,{id:void 0}));const l=(0,p.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof o.children?o.children:n});return a.createElement(t,(0,u.Z)({},o,{className:(0,d.Z)("anchor",r?me.anchorWithHideOnScrollNavbar:me.anchorWithStickyNavbar,o.className),id:n}),o.children,a.createElement(f.Z,{className:"hash-link",to:`#${n}`,"aria-label":l,title:l},"\u200b"))}var pe=n(9613),fe=n(7812);var he=n(6694),ge=n(8382);function be(){const{prism:e}=(0,W.L)(),{colorMode:t}=(0,ge.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var ve=n(7226),Ee=n.n(ve);const ye=/title=(?["'])(?.*?)\1/,ke=/\{(?<range>[\d,-]+)\}/,Ne={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function Ce(e,t){const n=e.map((e=>{const{start:n,end:a}=Ne[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function Le(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&ke.test(r)){const e=r.match(ke).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=Ee()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return Ce(["js","jsBlock"],t);case"jsx":case"tsx":return Ce(["js","jsBlock","jsx"],t);case"html":return Ce(["js","jsBlock","html"],t);case"python":case"py":case"bash":return Ce(["bash"],t);case"markdown":case"md":return Ce(["html","jsx","bash"],t);default:return Ce(Object.keys(Ne),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;Ee()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const _e={codeBlockContainer:"codeBlockContainer_qBuI"};function we(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(be());return a.createElement(t,(0,u.Z)({},n,{style:o,className:(0,d.Z)(n.className,_e.codeBlockContainer,y.k.common.codeBlock)}))}const Te={codeBlockContent:"codeBlockContent_s4cj",codeBlockTitle:"codeBlockTitle_KVh2",codeBlock:"codeBlock_ZB_v",codeBlockStandalone:"codeBlockStandalone_LYKq",codeBlockLines:"codeBlockLines_iNkr",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_PzpU",buttonGroup:"buttonGroup_MJM4"};function Ze(e){let{children:t,className:n}=e;return a.createElement(we,{as:"pre",tabIndex:0,className:(0,d.Z)(Te.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:Te.codeBlockLines},t))}const xe={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Be(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=xe);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const Oe={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var He={Prism:n(999).Z,theme:Oe};function Ae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function je(){return je=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},je.apply(this,arguments)}var Se=/\r\n|\r|\n/,Ie=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Me=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function Pe(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Ue=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ae(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=je({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=je({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ae(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=je({},Pe(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?je({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ae(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ae(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=je({},Pe(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?je({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ae(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=Me(d,m.type),m.alias&&(d=Me(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Se),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Ie(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Ie(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const ze=Ue,De={codeLine:"codeLine_DnHf",codeLineNumber:"codeLineNumber_mKaV",codeLineContent:"codeLineContent_tLd9"};function Ve(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&De.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,u.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:De.codeLineNumber}),a.createElement("span",{className:De.codeLineContent},s)):s,a.createElement("br",null))}function Re(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function We(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const $e={copyButtonCopied:"copyButtonCopied_zOKP",copyButtonIcons:"copyButtonIcons_rG_2",copyButtonIcon:"copyButtonIcon_l0xu",copyButtonSuccessIcon:"copyButtonSuccessIcon_DXTq"};function qe(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,p.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,$e.copyButton,o&&$e.copyButtonCopied),onClick:c},a.createElement("span",{className:$e.copyButtonIcons,"aria-hidden":"true"},a.createElement(Re,{className:$e.copyButtonIcon}),a.createElement(We,{className:$e.copyButtonSuccessIcon})))}function Fe(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Ke={wordWrapButtonIcon:"wordWrapButtonIcon_bKqG",wordWrapButtonEnabled:"wordWrapButtonEnabled_TKjM"};function Ge(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,p.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Ke.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Fe,{className:Ke.wordWrapButtonIcon,"aria-hidden":"true"}))}function Je(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,W.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,p=be(),f=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return Be(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),h=function(e){return e?.match(ye)?.groups.title??""}(o)||r,{lineClassNames:g,code:b}=Le(t,{metastring:o,language:m,magicComments:i}),v=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(we,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},h&&a.createElement("div",{className:Te.codeBlockTitle},h),a.createElement("div",{className:Te.codeBlockContent},a.createElement(ze,(0,u.Z)({},He,{theme:p,code:b,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:f.codeBlockRef,className:(0,d.Z)(t,Te.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(Te.codeBlockLines,v&&Te.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(Ve,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:g[t],showLineNumbers:v})))))})),a.createElement("div",{className:Te.buttonGroup},(f.isEnabled||f.isCodeScrollable)&&a.createElement(Ge,{className:Te.codeButton,onClick:()=>f.toggle(),isEnabled:f.isEnabled}),a.createElement(qe,{className:Te.codeButton,code:b}))))}function Xe(e){let{children:t,...n}=e;const o=(0,he.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?Je:Ze;return a.createElement(l,(0,u.Z)({key:String(o)},n),r)}const Ye={details:"details_C4Vm",isBrowser:"isBrowser_kcWa",collapsibleContent:"collapsibleContent_gEyC"};function Qe(e){return!!e&&("SUMMARY"===e.tagName||Qe(e.parentElement))}function et(e,t){return!!e&&(e===t||et(e.parentElement,t))}function tt(e){let{summary:t,children:n,...o}=e;const r=(0,he.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,R.u)({initialState:!o.open}),[i,m]=(0,a.useState)(o.open),p=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,u.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,d.Z)(Ye.details,r&&Ye.isBrowser,o.className),onMouseDown:e=>{Qe(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Qe(t)&&et(t,l.current)&&(e.preventDefault(),c?(s(!1),m(!0)):s(!0))}}),p,a.createElement(R.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),m(!e)}},a.createElement("div",{className:Ye.collapsibleContent},n)))}const nt={details:"details_sdwx"},at="alert alert--info";function ot(e){let{...t}=e;return a.createElement(tt,(0,u.Z)({},t,{className:(0,d.Z)(at,nt.details,t.className)}))}function rt(e){return a.createElement(ue,e)}const lt={containsTaskList:"containsTaskList_vSQf"};const ct={img:"img_Ytbv"};const st="admonition_fVrm",it="admonitionHeading_CfVA",dt="admonitionIcon_Hsjw",mt="admonitionContent_CXYE";const ut={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(p.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(p.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(p.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},pt={secondary:"note",important:"info",success:"tip",warning:"danger"};function ft(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const ht={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(fe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Xe,e)},a:function(e){return a.createElement(f.Z,e)},pre:function(e){return a.createElement(Xe,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(ot,(0,u.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,u.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&<.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,u.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,ct.img))}));var t},h1:e=>a.createElement(rt,(0,u.Z)({as:"h1"},e)),h2:e=>a.createElement(rt,(0,u.Z)({as:"h2"},e)),h3:e=>a.createElement(rt,(0,u.Z)({as:"h3"},e)),h4:e=>a.createElement(rt,(0,u.Z)({as:"h4"},e)),h5:e=>a.createElement(rt,(0,u.Z)({as:"h5"},e)),h6:e=>a.createElement(rt,(0,u.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=ft(e),l=function(e){const t=pt[e]??e,n=ut[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),ut.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(y.k.common.admonition,y.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,st)},a.createElement("div",{className:it},a.createElement("span",{className:dt},i),c),a.createElement("div",{className:mt},t))},mermaid:n(2093).Z};function gt(e){let{children:t}=e;return a.createElement(pe.Zo,{components:ht},t)}function bt(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(y.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ue,{as:"h1"},n)),a.createElement(gt,null,t))}var vt=n(8796),Et=n(8275),yt=n(1989);function kt(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const Nt={breadcrumbHomeIcon:"breadcrumbHomeIcon_hJyX"};function Ct(){const e=(0,yt.Z)("/");return a.createElement("li",{className:"breadcrumbs__item"},a.createElement(f.Z,{"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},a.createElement(kt,{className:Nt.breadcrumbHomeIcon})))}const Lt={breadcrumbsContainer:"breadcrumbsContainer_i0mL"};function _t(e){let{children:t,href:n,isLast:o}=e;const r="breadcrumbs__link";return o?a.createElement("span",{className:r,itemProp:"name"},t):n?a.createElement(f.Z,{className:r,href:n,itemProp:"item"},a.createElement("span",{itemProp:"name"},t)):a.createElement("span",{className:r},t)}function wt(e){let{children:t,active:n,index:o,addMicrodata:r}=e;return a.createElement("li",(0,u.Z)({},r&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,d.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,a.createElement("meta",{itemProp:"position",content:String(o+1)}))}function Tt(){const e=(0,vt.s1)(),t=(0,Et.Ns)();return e?a.createElement("nav",{className:(0,d.Z)(y.k.docs.docBreadcrumbs,Lt.breadcrumbsContainer),"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},a.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&a.createElement(Ct,null),e.map(((t,n)=>{const o=n===e.length-1;return a.createElement(wt,{key:n,active:o,index:n,addMicrodata:!!t.href},a.createElement(_t,{href:t.href,isLast:o},t.label))})))):null}const Zt={docItemContainer:"docItemContainer_oP11",docItemCol:"docItemCol_YjQa"};function xt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(re,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(de,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&Zt.docItemCol)},a.createElement(T,null),a.createElement("div",{className:Zt.docItemContainer},a.createElement("article",null,a.createElement(Tt,null),a.createElement(Z,null),n.mobile,a.createElement(bt,null,t),a.createElement(V,null)),a.createElement(b,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function Bt(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(xt,null,a.createElement(n,null))))}},4177:(e,t,n)=>{"use strict";n.d(t,{E:()=>c,q:()=>l});var a=n(9496),o=n(4327);const r=a.createContext(null);function l(e){let{children:t,version:n}=e;return a.createElement(r.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(r);if(null===e)throw new o.i6("DocsVersionProvider");return e}},7226:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/17896441.e5480f76.js b/assets/js/17896441.e5480f76.js deleted file mode 100644 index 5dc695507..000000000 --- a/assets/js/17896441.e5480f76.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7918],{9613:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i<r;i++)l[i]=n[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},1082:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Bt});var a=n(9496),o=n(4388),r=n(2194);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(5924),m=n(8917),u=n(7366),p=n(2878),f=n(9385);function h(e){const{permalink:t,title:n,subLabel:o,isNext:r}=e;return a.createElement(f.Z,{className:(0,d.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},o&&a.createElement("div",{className:"pagination-nav__sublabel"},o),a.createElement("div",{className:"pagination-nav__label"},n))}function g(e){const{previous:t,next:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,p.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&a.createElement(h,(0,u.Z)({},t,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&a.createElement(h,(0,u.Z)({},n,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function b(){const{metadata:e}=s();return a.createElement(g,{previous:e.previous,next:e.next})}var v=n(9061),E=n(1314),y=n(6694),k=n(5245),N=n(8603);const C={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function L(e){const t=C[e.versionMetadata.banner];return a.createElement(t,e)}function _(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(p.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(f.Z,{to:n,onClick:o},a.createElement(p.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function w(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,v.Z)(),{pluginId:r}=(0,E.gA)({failfast:!0}),{savePreferredVersionName:l}=(0,k.J)(r),{latestDocSuggestion:c,latestVersionSuggestion:s}=(0,E.Jo)(r),i=c??(m=s).docs.find((e=>e.id===m.mainDocId));var m;return a.createElement("div",{className:(0,d.Z)(t,y.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(L,{siteTitle:o,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(_,{versionLabel:s.label,to:i.path,onClick:()=>l(s.name)})))}function T(e){let{className:t}=e;const n=(0,N.E)();return n.banner?a.createElement(w,{className:t,versionMetadata:n}):null}function Z(e){let{className:t}=e;const n=(0,N.E)();return n.badge?a.createElement("span",{className:(0,d.Z)(t,y.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(p.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}function x(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function B(e){let{lastUpdatedBy:t}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function O(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:y.k.common.lastUpdated},a.createElement(p.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(x,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(B,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}const H={iconEdit:"iconEdit_mu1i"};function A(e){let{className:t,...n}=e;return a.createElement("svg",(0,u.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(H.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function j(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:y.k.common.editThisPage},a.createElement(A,null),a.createElement(p.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}const S={tag:"tag_dsT9",tagRegular:"tagRegular_S8DR",tagWithCount:"tagWithCount_H5gm"};function I(e){let{permalink:t,label:n,count:o}=e;return a.createElement(f.Z,{href:t,className:(0,d.Z)(S.tag,o?S.tagWithCount:S.tagRegular)},n,o&&a.createElement("span",null,o))}const M={tags:"tags_s874",tag:"tag_MJCD"};function P(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(p.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(M.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:M.tag},a.createElement(I,{label:t,permalink:n}))}))))}const U={lastUpdated:"lastUpdated_pCAw"};function z(e){return a.createElement("div",{className:(0,d.Z)(y.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(P,e)))}function D(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(y.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(j,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",U.lastUpdated)},(n||o)&&a.createElement(O,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function V(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(y.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(z,{tags:l}),i&&a.createElement(D,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var R=n(7482),W=n(1073);function $(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function q(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=q({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function F(e){const t=e.getBoundingClientRect();return t.top===t.bottom?F(e.parentNode):t}function K(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>F(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(F(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function G(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,W.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function J(e){const t=(0,a.useRef)(void 0),n=G();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=K(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function X(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(X,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const Y=a.memo(X);function Q(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,W.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,p=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>q({toc:$(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return J((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(Y,(0,u.Z)({toc:p,className:n,linkClassName:o},s))}const ee={tocCollapsibleButton:"tocCollapsibleButton_zASx",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_XkN_"};function te(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,u.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",ee.tocCollapsibleButton,!t&&ee.tocCollapsibleButtonExpanded,n.className)}),a.createElement(p.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const ne={tocCollapsible:"tocCollapsible_KKmh",tocCollapsibleContent:"tocCollapsibleContent_UAbN",tocCollapsibleExpanded:"tocCollapsibleExpanded_SuyW"};function ae(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,R.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(ne.tocCollapsible,!l&&ne.tocCollapsibleExpanded,n)},a.createElement(te,{collapsed:l,onClick:c}),a.createElement(R.z,{lazy:!0,className:ne.tocCollapsibleContent,collapsed:l},a.createElement(Q,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const oe={tocMobile:"tocMobile_RkN7"};function re(){const{toc:e,frontMatter:t}=s();return a.createElement(ae,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(y.k.docs.docTocMobile,oe.tocMobile)})}const le={tableOfContents:"tableOfContents_YRvJ",docItemContainer:"docItemContainer_f329"},ce="table-of-contents__link toc-highlight",se="table-of-contents__link--active";function ie(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(le.tableOfContents,"thin-scrollbar",t)},a.createElement(Q,(0,u.Z)({},n,{linkClassName:ce,linkActiveClassName:se})))}function de(){const{toc:e,frontMatter:t}=s();return a.createElement(ie,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:y.k.docs.docTocDesktop})}const me={anchorWithStickyNavbar:"anchorWithStickyNavbar_G0xS",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_kOCw"};function ue(e){let{as:t,id:n,...o}=e;const{navbar:{hideOnScroll:r}}=(0,W.L)();if("h1"===t||!n)return a.createElement(t,(0,u.Z)({},o,{id:void 0}));const l=(0,p.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof o.children?o.children:n});return a.createElement(t,(0,u.Z)({},o,{className:(0,d.Z)("anchor",r?me.anchorWithHideOnScrollNavbar:me.anchorWithStickyNavbar,o.className),id:n}),o.children,a.createElement(f.Z,{className:"hash-link",to:`#${n}`,"aria-label":l,title:l},"\u200b"))}var pe=n(9613),fe=n(5879);var he=n(1768),ge=n(3144);function be(){const{prism:e}=(0,W.L)(),{colorMode:t}=(0,ge.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var ve=n(7226),Ee=n.n(ve);const ye=/title=(?<quote>["'])(?<title>.*?)\1/,ke=/\{(?<range>[\d,-]+)\}/,Ne={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function Ce(e,t){const n=e.map((e=>{const{start:n,end:a}=Ne[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function Le(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&ke.test(r)){const e=r.match(ke).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=Ee()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return Ce(["js","jsBlock"],t);case"jsx":case"tsx":return Ce(["js","jsBlock","jsx"],t);case"html":return Ce(["js","jsBlock","html"],t);case"python":case"py":case"bash":return Ce(["bash"],t);case"markdown":case"md":return Ce(["html","jsx","bash"],t);default:return Ce(Object.keys(Ne),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;Ee()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const _e={codeBlockContainer:"codeBlockContainer_qBuI"};function we(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(be());return a.createElement(t,(0,u.Z)({},n,{style:o,className:(0,d.Z)(n.className,_e.codeBlockContainer,y.k.common.codeBlock)}))}const Te={codeBlockContent:"codeBlockContent_s4cj",codeBlockTitle:"codeBlockTitle_KVh2",codeBlock:"codeBlock_ZB_v",codeBlockStandalone:"codeBlockStandalone_LYKq",codeBlockLines:"codeBlockLines_iNkr",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_PzpU",buttonGroup:"buttonGroup_MJM4"};function Ze(e){let{children:t,className:n}=e;return a.createElement(we,{as:"pre",tabIndex:0,className:(0,d.Z)(Te.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:Te.codeBlockLines},t))}const xe={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Be(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=xe);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const Oe={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var He={Prism:n(999).Z,theme:Oe};function Ae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function je(){return je=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},je.apply(this,arguments)}var Se=/\r\n|\r|\n/,Ie=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Me=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function Pe(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Ue=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ae(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=je({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=je({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ae(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=je({},Pe(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?je({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ae(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ae(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=je({},Pe(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?je({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ae(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=Me(d,m.type),m.alias&&(d=Me(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Se),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Ie(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Ie(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const ze=Ue,De={codeLine:"codeLine_DnHf",codeLineNumber:"codeLineNumber_mKaV",codeLineContent:"codeLineContent_tLd9"};function Ve(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&De.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,u.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:De.codeLineNumber}),a.createElement("span",{className:De.codeLineContent},s)):s,a.createElement("br",null))}function Re(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function We(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const $e={copyButtonCopied:"copyButtonCopied_zOKP",copyButtonIcons:"copyButtonIcons_rG_2",copyButtonIcon:"copyButtonIcon_l0xu",copyButtonSuccessIcon:"copyButtonSuccessIcon_DXTq"};function qe(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,p.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,$e.copyButton,o&&$e.copyButtonCopied),onClick:c},a.createElement("span",{className:$e.copyButtonIcons,"aria-hidden":"true"},a.createElement(Re,{className:$e.copyButtonIcon}),a.createElement(We,{className:$e.copyButtonSuccessIcon})))}function Fe(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Ke={wordWrapButtonIcon:"wordWrapButtonIcon_bKqG",wordWrapButtonEnabled:"wordWrapButtonEnabled_TKjM"};function Ge(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,p.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Ke.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Fe,{className:Ke.wordWrapButtonIcon,"aria-hidden":"true"}))}function Je(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,W.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,p=be(),f=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return Be(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),h=function(e){return e?.match(ye)?.groups.title??""}(o)||r,{lineClassNames:g,code:b}=Le(t,{metastring:o,language:m,magicComments:i}),v=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(we,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},h&&a.createElement("div",{className:Te.codeBlockTitle},h),a.createElement("div",{className:Te.codeBlockContent},a.createElement(ze,(0,u.Z)({},He,{theme:p,code:b,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:f.codeBlockRef,className:(0,d.Z)(t,Te.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(Te.codeBlockLines,v&&Te.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(Ve,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:g[t],showLineNumbers:v})))))})),a.createElement("div",{className:Te.buttonGroup},(f.isEnabled||f.isCodeScrollable)&&a.createElement(Ge,{className:Te.codeButton,onClick:()=>f.toggle(),isEnabled:f.isEnabled}),a.createElement(qe,{className:Te.codeButton,code:b}))))}function Xe(e){let{children:t,...n}=e;const o=(0,he.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?Je:Ze;return a.createElement(l,(0,u.Z)({key:String(o)},n),r)}const Ye={details:"details_C4Vm",isBrowser:"isBrowser_kcWa",collapsibleContent:"collapsibleContent_gEyC"};function Qe(e){return!!e&&("SUMMARY"===e.tagName||Qe(e.parentElement))}function et(e,t){return!!e&&(e===t||et(e.parentElement,t))}function tt(e){let{summary:t,children:n,...o}=e;const r=(0,he.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,R.u)({initialState:!o.open}),[i,m]=(0,a.useState)(o.open),p=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,u.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,d.Z)(Ye.details,r&&Ye.isBrowser,o.className),onMouseDown:e=>{Qe(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Qe(t)&&et(t,l.current)&&(e.preventDefault(),c?(s(!1),m(!0)):s(!0))}}),p,a.createElement(R.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),m(!e)}},a.createElement("div",{className:Ye.collapsibleContent},n)))}const nt={details:"details_sdwx"},at="alert alert--info";function ot(e){let{...t}=e;return a.createElement(tt,(0,u.Z)({},t,{className:(0,d.Z)(at,nt.details,t.className)}))}function rt(e){return a.createElement(ue,e)}const lt={containsTaskList:"containsTaskList_vSQf"};const ct={img:"img_Ytbv"};const st="admonition_fVrm",it="admonitionHeading_CfVA",dt="admonitionIcon_Hsjw",mt="admonitionContent_CXYE";const ut={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(p.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(p.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(p.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},pt={secondary:"note",important:"info",success:"tip",warning:"danger"};function ft(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const ht={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(fe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Xe,e)},a:function(e){return a.createElement(f.Z,e)},pre:function(e){return a.createElement(Xe,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(ot,(0,u.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,u.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&<.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,u.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,ct.img))}));var t},h1:e=>a.createElement(rt,(0,u.Z)({as:"h1"},e)),h2:e=>a.createElement(rt,(0,u.Z)({as:"h2"},e)),h3:e=>a.createElement(rt,(0,u.Z)({as:"h3"},e)),h4:e=>a.createElement(rt,(0,u.Z)({as:"h4"},e)),h5:e=>a.createElement(rt,(0,u.Z)({as:"h5"},e)),h6:e=>a.createElement(rt,(0,u.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=ft(e),l=function(e){const t=pt[e]??e,n=ut[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),ut.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(y.k.common.admonition,y.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,st)},a.createElement("div",{className:it},a.createElement("span",{className:dt},i),c),a.createElement("div",{className:mt},t))},mermaid:n(3071).Z};function gt(e){let{children:t}=e;return a.createElement(pe.Zo,{components:ht},t)}function bt(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(y.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ue,{as:"h1"},n)),a.createElement(gt,null,t))}var vt=n(7260),Et=n(1641),yt=n(1956);function kt(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const Nt={breadcrumbHomeIcon:"breadcrumbHomeIcon_hJyX"};function Ct(){const e=(0,yt.Z)("/");return a.createElement("li",{className:"breadcrumbs__item"},a.createElement(f.Z,{"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},a.createElement(kt,{className:Nt.breadcrumbHomeIcon})))}const Lt={breadcrumbsContainer:"breadcrumbsContainer_i0mL"};function _t(e){let{children:t,href:n,isLast:o}=e;const r="breadcrumbs__link";return o?a.createElement("span",{className:r,itemProp:"name"},t):n?a.createElement(f.Z,{className:r,href:n,itemProp:"item"},a.createElement("span",{itemProp:"name"},t)):a.createElement("span",{className:r},t)}function wt(e){let{children:t,active:n,index:o,addMicrodata:r}=e;return a.createElement("li",(0,u.Z)({},r&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,d.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,a.createElement("meta",{itemProp:"position",content:String(o+1)}))}function Tt(){const e=(0,vt.s1)(),t=(0,Et.Ns)();return e?a.createElement("nav",{className:(0,d.Z)(y.k.docs.docBreadcrumbs,Lt.breadcrumbsContainer),"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},a.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&a.createElement(Ct,null),e.map(((t,n)=>{const o=n===e.length-1;return a.createElement(wt,{key:n,active:o,index:n,addMicrodata:!!t.href},a.createElement(_t,{href:t.href,isLast:o},t.label))})))):null}const Zt={docItemContainer:"docItemContainer_oP11",docItemCol:"docItemCol_YjQa"};function xt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(re,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(de,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&Zt.docItemCol)},a.createElement(T,null),a.createElement("div",{className:Zt.docItemContainer},a.createElement("article",null,a.createElement(Tt,null),a.createElement(Z,null),n.mobile,a.createElement(bt,null,t),a.createElement(V,null)),a.createElement(b,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function Bt(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(xt,null,a.createElement(n,null))))}},8603:(e,t,n)=>{"use strict";n.d(t,{E:()=>c,q:()=>l});var a=n(9496),o=n(2194);const r=a.createContext(null);function l(e){let{children:t,version:n}=e;return a.createElement(r.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(r);if(null===e)throw new o.i6("DocsVersionProvider");return e}},7226:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/1a546ad0.4d0d0193.js b/assets/js/1a546ad0.c759507d.js similarity index 99% rename from assets/js/1a546ad0.4d0d0193.js rename to assets/js/1a546ad0.c759507d.js index 1c4c707f0..238e503ae 100644 --- a/assets/js/1a546ad0.4d0d0193.js +++ b/assets/js/1a546ad0.c759507d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4805],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var a=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=l(t),p=o,f=u["".concat(c,".").concat(p)]||u[p]||m[p]||r;return t?a.createElement(f,i(i({ref:n},s),{},{components:t})):a.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=p;var d={};for(var c in n)hasOwnProperty.call(n,c)&&(d[c]=n[c]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var l=2;l<r;l++)i[l]=t[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},7806:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var a=t(7366),o=(t(9496),t(9613));const r={sidebar_position:2,title:"Loading modules from metadata"},i=void 0,d={unversionedId:"tutorial/container-modules/loading-modules-from-metadata",id:"tutorial/container-modules/loading-modules-from-metadata",title:"Loading modules from metadata",description:"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.",source:"@site/docs/tutorial/container-modules/loading-modules-from-metadata.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/loading-modules-from-metadata",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Loading modules from metadata"},sidebar:"sidebar",previous:{title:"Creating modules",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules"},next:{title:"Binding",permalink:"/iocuak-docs/docs/next/concepts/binding"}},c={},l=[{value:"Container Module Factory Metatada",id:"container-module-factory-metatada",level:3},{value:"Container Module Class Metadata",id:"container-module-class-metadata",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database."),(0,o.kt)("p",null,"Container module metadata is provided for those purposes."),(0,o.kt)("h3",{id:"container-module-factory-metatada"},"Container Module Factory Metatada"),(0,o.kt)("p",null,"This approach uses a factory to create the module. This metadata can receive an ",(0,o.kt)("inlineCode",{parentName:"p"},"injects")," property to receive injected dependencies."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module."),(0,o.kt)("h3",{id:"container-module-class-metadata"},"Container Module Class Metadata"),(0,o.kt)("p",null,"This approach receives a class which is used to create the module."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModule,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\n@injectable()\nclass MyContainerModule implements ContainerModule {\n\n constructor(\n @inject(Dependency)\n public readonly someServiceDependency: Dependency,\n ) {}\n\n public load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n}\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n imports: [someContainerModuleMetadataDependency],\n module: MyContainerModule,\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports."),(0,o.kt)("p",null,"This approach is highly inspired on ",(0,o.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/fundamentals/dynamic-modules"},"NestJs modules"),"."),(0,o.kt)("p",null,"Consider the ",(0,o.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/next/concepts/container-module-metadata"},"ContainerModuleMetadata")," page as reference to know more about ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleMetadata")," details."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4805],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var a=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=l(t),p=o,f=u["".concat(c,".").concat(p)]||u[p]||m[p]||r;return t?a.createElement(f,i(i({ref:n},s),{},{components:t})):a.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=p;var d={};for(var c in n)hasOwnProperty.call(n,c)&&(d[c]=n[c]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var l=2;l<r;l++)i[l]=t[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5814:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var a=t(7366),o=(t(9496),t(9613));const r={sidebar_position:2,title:"Loading modules from metadata"},i=void 0,d={unversionedId:"tutorial/container-modules/loading-modules-from-metadata",id:"tutorial/container-modules/loading-modules-from-metadata",title:"Loading modules from metadata",description:"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.",source:"@site/docs/tutorial/container-modules/loading-modules-from-metadata.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/loading-modules-from-metadata",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Loading modules from metadata"},sidebar:"sidebar",previous:{title:"Creating modules",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules"},next:{title:"Binding",permalink:"/iocuak-docs/docs/next/concepts/binding"}},c={},l=[{value:"Container Module Factory Metatada",id:"container-module-factory-metatada",level:3},{value:"Container Module Class Metadata",id:"container-module-class-metadata",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database."),(0,o.kt)("p",null,"Container module metadata is provided for those purposes."),(0,o.kt)("h3",{id:"container-module-factory-metatada"},"Container Module Factory Metatada"),(0,o.kt)("p",null,"This approach uses a factory to create the module. This metadata can receive an ",(0,o.kt)("inlineCode",{parentName:"p"},"injects")," property to receive injected dependencies."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module."),(0,o.kt)("h3",{id:"container-module-class-metadata"},"Container Module Class Metadata"),(0,o.kt)("p",null,"This approach receives a class which is used to create the module."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModule,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\n@injectable()\nclass MyContainerModule implements ContainerModule {\n\n constructor(\n @inject(Dependency)\n public readonly someServiceDependency: Dependency,\n ) {}\n\n public load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n}\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n imports: [someContainerModuleMetadataDependency],\n module: MyContainerModule,\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports."),(0,o.kt)("p",null,"This approach is highly inspired on ",(0,o.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/fundamentals/dynamic-modules"},"NestJs modules"),"."),(0,o.kt)("p",null,"Consider the ",(0,o.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/next/concepts/container-module-metadata"},"ContainerModuleMetadata")," page as reference to know more about ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleMetadata")," details."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1b5e222d.9aaecd32.js b/assets/js/1b5e222d.8d377320.js similarity index 98% rename from assets/js/1b5e222d.9aaecd32.js rename to assets/js/1b5e222d.8d377320.js index 215242158..b69f053a1 100644 --- a/assets/js/1b5e222d.9aaecd32.js +++ b/assets/js/1b5e222d.8d377320.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4334],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},8271:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(7366),o=(n(9496),n(9613));const i={sidebar_position:1,title:"Introduction"},a=void 0,c={unversionedId:"tutorial/container-modules/introduction",id:"version-0.5.0/tutorial/container-modules/introduction",title:"Introduction",description:"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.",source:"@site/versioned_docs/version-0.5.0/tutorial/container-modules/introduction.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/introduction",permalink:"/iocuak-docs/docs/tutorial/container-modules/introduction",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"Creating instances",permalink:"/iocuak-docs/docs/tutorial/the-container-object/creating-instances"},next:{title:"Creating modules",permalink:"/iocuak-docs/docs/tutorial/container-modules/creating-modules"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4334],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},1796:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(7366),o=(n(9496),n(9613));const i={sidebar_position:1,title:"Introduction"},a=void 0,c={unversionedId:"tutorial/container-modules/introduction",id:"version-0.5.0/tutorial/container-modules/introduction",title:"Introduction",description:"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.",source:"@site/versioned_docs/version-0.5.0/tutorial/container-modules/introduction.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/introduction",permalink:"/iocuak-docs/docs/tutorial/container-modules/introduction",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"Creating instances",permalink:"/iocuak-docs/docs/tutorial/the-container-object/creating-instances"},next:{title:"Creating modules",permalink:"/iocuak-docs/docs/tutorial/container-modules/creating-modules"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1be78505.29de1c5a.js b/assets/js/1be78505.29de1c5a.js deleted file mode 100644 index 048a9f749..000000000 --- a/assets/js/1be78505.29de1c5a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9514,9952],{3028:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(9496),o=n(5924),l=n(4388),r=n(6694),c=n(1037),i=n(7260),s=n(8603),d=n(9481),m=n(226),u=n(2878),b=n(4770),p=n(5419);const h={backToTopButton:"backToTopButton_N_Po",backToTopButtonShow:"backToTopButtonShow_Wvdk"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),l=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(l.current?l.current=!1:a>=r?(c(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,p.S)((e=>{e.location.hash&&(l.current=!0,o(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(1258),g=n(3442),v=n(8917),k=n(1073),_=n(6262),C=n(7366);function I(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const S={collapseSidebarButton:"collapseSidebarButton_tvNf",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_ezCd"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",S.collapseSidebarButton),onClick:t},a.createElement(I,{className:S.collapseSidebarButtonIcon}))}var Z=n(8971),T=n(2194);const x=Symbol("EmptyContext"),B=a.createContext(x);function w(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),l=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return a.createElement(B.Provider,{value:l},t)}var y=n(7482),L=n(1641),A=n(9385),H=n(1768);function M(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function P(e){let{item:t,onItemClick:n,activePath:l,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,k.L)(),f=function(e){const t=(0,H.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,l),v=(0,L.Mg)(h,l),{collapsed:_,setCollapsed:I}=(0,y.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:S,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new T.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!_),N(e?null:s),I(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const l=(0,T.D9)(t);(0,a.useEffect)((()=>{t&&!l&&n&&o(!1)}),[t,l,n,o])}({isActive:g,collapsed:_,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&null!=S&&S!==s&&E&&I(!0)}),[b,S,s,I,E]),a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v})},a.createElement(A.Z,(0,C.Z)({className:(0,o.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(M,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(y.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(U,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:l,level:c+1})))}var F=n(4272),W=n(8370);const R={menuExternalLink:"menuExternalLink_R5r8"};function D(e){let{item:t,onItemClick:n,activePath:l,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,l),E=(0,F.Z)(m);return a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,o.Z)("menu__link",!E&&R.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_vnKH"};function z(e){let{item:t,level:n,index:l}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:l,dangerouslySetInnerHTML:{__html:c}})}function K(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(P,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(D,(0,C.Z)({item:t},n))}}function Y(e){let{items:t,...n}=e;return a.createElement(w,null,t.map(((e,t)=>a.createElement(K,(0,C.Z)({key:t,item:e,index:t},n)))))}const U=(0,a.memo)(Y),q={menu:"menu__X8r",menuWithAnnouncementBar:"menuWithAnnouncementBar_sxYV"};function G(e){let{path:t,sidebar:n,className:l}=e;const c=function(){const{isActive:e}=(0,Z.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",q.menu,c&&q.menuWithAnnouncementBar,l)},a.createElement("ul",{className:(0,o.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(U,{items:n,activePath:t,level:1})))}const O="sidebar_ntaG",Q="sidebarWithHideableNavbar_BsMC",j="sidebarHidden_QMA9",X="sidebarLogo_r1gr";function J(e){let{path:t,sidebar:n,onCollapse:l,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,k.L)();return a.createElement("div",{className:(0,o.Z)(O,c&&Q,r&&j)},c&&a.createElement(_.Z,{tabIndex:-1,className:X}),a.createElement(G,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:l}))}const $=a.memo(J);var ee=n(4866),te=n(3795);const ne=e=>{let{sidebar:t,path:n}=e;const l=(0,te.e)();return a.createElement("ul",{className:(0,o.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(U,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&l.toggle(),"link"===e.type&&l.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const oe=a.memo(ae);function le(e){const t=(0,v.i)(),n="desktop"===t||"ssr"===t,o="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),o&&a.createElement(oe,e))}const re={expandButton:"expandButton__ujF",expandButtonIcon:"expandButtonIcon_o354"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_IL6K",docSidebarContainerHidden:"docSidebarContainerHidden_gZZQ",sidebarViewport:"sidebarViewport_NdKu"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:l}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),l((e=>!e))}),[l,i]);return a.createElement("aside",{className:(0,o.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,o.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(le,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_auum",docMainContainerEnhanced:"docMainContainerEnhanced_s_wR",docItemWrapperEnhanced:"docItemWrapperEnhanced_bsnR"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const l=(0,d.V)();return a.createElement("main",{className:(0,o.Z)(me.docMainContainer,(t||!l)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage_nmui",docsWrapper:"docsWrapper_B54O"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[o,l]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:l}),a.createElement(ue,{hiddenSidebarContainer:o},t)))}var he=n(9952),Ee=n(7727);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(l.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(l.FG,{className:(0,o.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},9952:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(9496),o=n(2878),l=n(4388),r=n(226);function c(){return a.createElement(a.Fragment,null,a.createElement(l.d,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}},8603:(e,t,n)=>{n.d(t,{E:()=>c,q:()=>r});var a=n(9496),o=n(2194);const l=a.createContext(null);function r(e){let{children:t,version:n}=e;return a.createElement(l.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(l);if(null===e)throw new o.i6("DocsVersionProvider");return e}}}]); \ No newline at end of file diff --git a/assets/js/1be78505.5bc8aa40.js b/assets/js/1be78505.5bc8aa40.js new file mode 100644 index 000000000..9031cdd69 --- /dev/null +++ b/assets/js/1be78505.5bc8aa40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9514,9697],{7071:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(9496),o=n(5924),l=n(2583),r=n(5228),c=n(4095),i=n(8796),s=n(4177),d=n(7813),m=n(2739),u=n(9681),b=n(2428),p=n(4857);const h={backToTopButton:"backToTopButton_N_Po",backToTopButtonShow:"backToTopButtonShow_Wvdk"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),l=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(l.current?l.current=!1:a>=r?(c(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,p.S)((e=>{e.location.hash&&(l.current=!0,o(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(9494),g=n(3442),v=n(28),k=n(163),_=n(5400),C=n(7366);function I(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const S={collapseSidebarButton:"collapseSidebarButton_tvNf",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_ezCd"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",S.collapseSidebarButton),onClick:t},a.createElement(I,{className:S.collapseSidebarButtonIcon}))}var Z=n(6853),T=n(4327);const x=Symbol("EmptyContext"),B=a.createContext(x);function w(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),l=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return a.createElement(B.Provider,{value:l},t)}var y=n(1930),L=n(8275),A=n(4603),H=n(6694);function M(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function P(e){let{item:t,onItemClick:n,activePath:l,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,k.L)(),f=function(e){const t=(0,H.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,l),v=(0,L.Mg)(h,l),{collapsed:_,setCollapsed:I}=(0,y.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:S,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new T.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!_),N(e?null:s),I(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const l=(0,T.D9)(t);(0,a.useEffect)((()=>{t&&!l&&n&&o(!1)}),[t,l,n,o])}({isActive:g,collapsed:_,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&null!=S&&S!==s&&E&&I(!0)}),[b,S,s,I,E]),a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v})},a.createElement(A.Z,(0,C.Z)({className:(0,o.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(M,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(y.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(U,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:l,level:c+1})))}var F=n(6767),W=n(6200);const R={menuExternalLink:"menuExternalLink_R5r8"};function D(e){let{item:t,onItemClick:n,activePath:l,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,l),E=(0,F.Z)(m);return a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,o.Z)("menu__link",!E&&R.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_vnKH"};function z(e){let{item:t,level:n,index:l}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:l,dangerouslySetInnerHTML:{__html:c}})}function K(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(P,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(D,(0,C.Z)({item:t},n))}}function Y(e){let{items:t,...n}=e;return a.createElement(w,null,t.map(((e,t)=>a.createElement(K,(0,C.Z)({key:t,item:e,index:t},n)))))}const U=(0,a.memo)(Y),q={menu:"menu__X8r",menuWithAnnouncementBar:"menuWithAnnouncementBar_sxYV"};function G(e){let{path:t,sidebar:n,className:l}=e;const c=function(){const{isActive:e}=(0,Z.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",q.menu,c&&q.menuWithAnnouncementBar,l)},a.createElement("ul",{className:(0,o.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(U,{items:n,activePath:t,level:1})))}const O="sidebar_ntaG",Q="sidebarWithHideableNavbar_BsMC",j="sidebarHidden_QMA9",X="sidebarLogo_r1gr";function J(e){let{path:t,sidebar:n,onCollapse:l,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,k.L)();return a.createElement("div",{className:(0,o.Z)(O,c&&Q,r&&j)},c&&a.createElement(_.Z,{tabIndex:-1,className:X}),a.createElement(G,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:l}))}const $=a.memo(J);var ee=n(9471),te=n(4155);const ne=e=>{let{sidebar:t,path:n}=e;const l=(0,te.e)();return a.createElement("ul",{className:(0,o.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(U,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&l.toggle(),"link"===e.type&&l.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const oe=a.memo(ae);function le(e){const t=(0,v.i)(),n="desktop"===t||"ssr"===t,o="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),o&&a.createElement(oe,e))}const re={expandButton:"expandButton__ujF",expandButtonIcon:"expandButtonIcon_o354"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_IL6K",docSidebarContainerHidden:"docSidebarContainerHidden_gZZQ",sidebarViewport:"sidebarViewport_NdKu"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:l}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),l((e=>!e))}),[l,i]);return a.createElement("aside",{className:(0,o.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,o.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(le,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_auum",docMainContainerEnhanced:"docMainContainerEnhanced_s_wR",docItemWrapperEnhanced:"docItemWrapperEnhanced_bsnR"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const l=(0,d.V)();return a.createElement("main",{className:(0,o.Z)(me.docMainContainer,(t||!l)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage_nmui",docsWrapper:"docsWrapper_B54O"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[o,l]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:l}),a.createElement(ue,{hiddenSidebarContainer:o},t)))}var he=n(9697),Ee=n(5184);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(l.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(l.FG,{className:(0,o.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},9697:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(9496),o=n(9681),l=n(2583),r=n(2739);function c(){return a.createElement(a.Fragment,null,a.createElement(l.d,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}},4177:(e,t,n)=>{n.d(t,{E:()=>c,q:()=>r});var a=n(9496),o=n(4327);const l=a.createContext(null);function r(e){let{children:t,version:n}=e;return a.createElement(l.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(l);if(null===e)throw new o.i6("DocsVersionProvider");return e}}}]); \ No newline at end of file diff --git a/assets/js/1bff9566.c689f081.js b/assets/js/1bff9566.cb9fc282.js similarity index 99% rename from assets/js/1bff9566.c689f081.js rename to assets/js/1bff9566.cb9fc282.js index 6a63e0142..f2a11128d 100644 --- a/assets/js/1bff9566.c689f081.js +++ b/assets/js/1bff9566.cb9fc282.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5903],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(9496);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=i,g=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},6204:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7366),i=(n(9496),n(9613));const a={sidebar_position:1,title:"Binding"},o=void 0,s={unversionedId:"concepts/binding",id:"version-0.4.0/concepts/binding",title:"Binding",description:"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:",source:"@site/versioned_docs/version-0.4.0/concepts/binding.md",sourceDirName:"concepts",slug:"/concepts/binding",permalink:"/iocuak-docs/docs/0.4.0/concepts/binding",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Binding"},sidebar:"sidebar",previous:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata"},next:{title:"Class metadata",permalink:"/iocuak-docs/docs/0.4.0/concepts/class-metadata"}},c={},l=[{value:"TypeBinding",id:"typebinding",level:2},{value:"Binding scope",id:"binding-scope",level:3}],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"id"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id. Any attempt to create a service matching this service id is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags associated. Any attempt to create a service matching one of these tags is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,i.kt)("p",null,"There are two kinds of bindings:"),(0,i.kt)("h2",{id:"typebinding"},"TypeBinding"),(0,i.kt)("p",null,"A class based binding. A type binding relies on a class constructor to instantiate the service."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Binding scope to determine wheter or not a service should be reused."),(0,i.kt)("td",{parentName:"tr",align:"center"},"BindingScope")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Class to be used to call its constructor"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Newable")))),(0,i.kt)("h3",{id:"binding-scope"},"Binding scope"),(0,i.kt)("p",null,"When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transient: An instance of this service is never reused."),(0,i.kt)("li",{parentName:"ul"},"Request: An instance of this service is reused if service is requested under the same ",(0,i.kt)("inlineCode",{parentName:"li"},"Container.get")," request.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Example"),": Given the services ",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),", both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),". In addition, ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"B"),". If ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," is injected on request scope, a request to the ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," service results in the same ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," instance being injected to both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Singleton: An instance of this service is always reused.")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5903],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(9496);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=i,g=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},6870:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7366),i=(n(9496),n(9613));const a={sidebar_position:1,title:"Binding"},o=void 0,s={unversionedId:"concepts/binding",id:"version-0.4.0/concepts/binding",title:"Binding",description:"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:",source:"@site/versioned_docs/version-0.4.0/concepts/binding.md",sourceDirName:"concepts",slug:"/concepts/binding",permalink:"/iocuak-docs/docs/0.4.0/concepts/binding",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Binding"},sidebar:"sidebar",previous:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata"},next:{title:"Class metadata",permalink:"/iocuak-docs/docs/0.4.0/concepts/class-metadata"}},c={},l=[{value:"TypeBinding",id:"typebinding",level:2},{value:"Binding scope",id:"binding-scope",level:3}],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"id"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id. Any attempt to create a service matching this service id is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags associated. Any attempt to create a service matching one of these tags is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,i.kt)("p",null,"There are two kinds of bindings:"),(0,i.kt)("h2",{id:"typebinding"},"TypeBinding"),(0,i.kt)("p",null,"A class based binding. A type binding relies on a class constructor to instantiate the service."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Binding scope to determine wheter or not a service should be reused."),(0,i.kt)("td",{parentName:"tr",align:"center"},"BindingScope")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Class to be used to call its constructor"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Newable")))),(0,i.kt)("h3",{id:"binding-scope"},"Binding scope"),(0,i.kt)("p",null,"When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transient: An instance of this service is never reused."),(0,i.kt)("li",{parentName:"ul"},"Request: An instance of this service is reused if service is requested under the same ",(0,i.kt)("inlineCode",{parentName:"li"},"Container.get")," request.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Example"),": Given the services ",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),", both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),". In addition, ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"B"),". If ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," is injected on request scope, a request to the ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," service results in the same ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," instance being injected to both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Singleton: An instance of this service is always reused.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c5f3ec8.6597271e.js b/assets/js/1c5f3ec8.8de57751.js similarity index 98% rename from assets/js/1c5f3ec8.6597271e.js rename to assets/js/1c5f3ec8.8de57751.js index 9bac25187..fb8f51b2b 100644 --- a/assets/js/1c5f3ec8.6597271e.js +++ b/assets/js/1c5f3ec8.8de57751.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5121],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var o=r(9496);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}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){n(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 c(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=n,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?o.createElement(f,i(i({ref:t},p),{},{components:r})):o.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:n,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}m.displayName="MDXCreateElement"},7780:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=r(7366),n=(r(9496),r(9613));const a={sidebar_position:2,title:"The inject decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/inject-decorator",id:"version-0.4.0/tutorial/decorating-classes/inject-decorator",title:"The inject decorator",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.4.0/tutorial/decorating-classes/inject-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/inject-decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"The inject decorator"},sidebar:"sidebar",previous:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction"}},s={},l=[],p={toc:l},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")),(0,n.kt)("p",null,"This way the IoC container knows the property ",(0,n.kt)("inlineCode",{parentName:"p"},"foo")," should be injected with the service associated to ",(0,n.kt)("inlineCode",{parentName:"p"},"dummyFooServiceId"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5121],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var o=r(9496);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}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){n(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 c(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=n,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?o.createElement(f,i(i({ref:t},p),{},{components:r})):o.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:n,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6719:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=r(7366),n=(r(9496),r(9613));const a={sidebar_position:2,title:"The inject decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/inject-decorator",id:"version-0.4.0/tutorial/decorating-classes/inject-decorator",title:"The inject decorator",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.4.0/tutorial/decorating-classes/inject-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/inject-decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"The inject decorator"},sidebar:"sidebar",previous:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction"}},s={},l=[],p={toc:l},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")),(0,n.kt)("p",null,"This way the IoC container knows the property ",(0,n.kt)("inlineCode",{parentName:"p"},"foo")," should be injected with the service associated to ",(0,n.kt)("inlineCode",{parentName:"p"},"dummyFooServiceId"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.748b41e5.js b/assets/js/1df93b7f.748b41e5.js deleted file mode 100644 index 3ad4fe545..000000000 --- a/assets/js/1df93b7f.748b41e5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3237],{4065:(e,t,n)=>{n.r(t),n.d(t,{default:()=>i});var a=n(9496),r=n(5924),o=n(226),c=n(9385),l=n(9061);const s={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};function u(){const{siteConfig:e}=(0,l.Z)();return a.createElement("header",{className:(0,r.Z)("hero hero--primary",s.heroBanner)},a.createElement("div",{className:"container"},a.createElement("h1",{className:"hero__title"},e.title),a.createElement("p",{className:"hero__subtitle"},e.tagline),a.createElement("div",{className:s.buttons},a.createElement(c.Z,{className:"button button--secondary button--lg",to:"/docs/tutorial/introduction"},"Read the tutorial - 10min \u23f1\ufe0f"))))}function i(){return a.createElement(o.Z,null,a.createElement(u,null))}}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.f29aed5a.js b/assets/js/1df93b7f.f29aed5a.js new file mode 100644 index 000000000..cf4d2abf0 --- /dev/null +++ b/assets/js/1df93b7f.f29aed5a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3237],{4925:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});var r=n(9496);function a(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=a(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}const o=function(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=a(e))&&(r&&(r+=" "),r+=t);return r};var c=n(2739),l=n(4603),s=n(4662);const i={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};function u(){const{siteConfig:e}=(0,s.Z)();return r.createElement("header",{className:o("hero hero--primary",i.heroBanner)},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},e.title),r.createElement("p",{className:"hero__subtitle"},e.tagline),r.createElement("div",{className:i.buttons},r.createElement(l.Z,{className:"button button--secondary button--lg",to:"/docs/tutorial/introduction"},"Read the tutorial - 10min \u23f1\ufe0f"))))}function f(){return r.createElement(c.Z,null,r.createElement(u,null))}}}]); \ No newline at end of file diff --git a/assets/js/23221674.c4619f30.js b/assets/js/23221674.abd3232e.js similarity index 98% rename from assets/js/23221674.c4619f30.js rename to assets/js/23221674.abd3232e.js index bb152d2d2..21dea09fc 100644 --- a/assets/js/23221674.c4619f30.js +++ b/assets/js/23221674.abd3232e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3896],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},9398:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:2,title:"inject"},a=void 0,c={unversionedId:"api/injection/inject-decorator",id:"version-0.3.1/api/injection/inject-decorator",title:"inject",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.3.1/api/injection/inject-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-decorator",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"inject"},sidebar:"sidebar",previous:{title:"injectable",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator"},next:{title:"injectTag",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3896],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6566:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:2,title:"inject"},a=void 0,c={unversionedId:"api/injection/inject-decorator",id:"version-0.3.1/api/injection/inject-decorator",title:"inject",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.3.1/api/injection/inject-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-decorator",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"inject"},sidebar:"sidebar",previous:{title:"injectable",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator"},next:{title:"injectTag",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/250fe880.f73c9be4.js b/assets/js/250fe880.b1f3560a.js similarity index 98% rename from assets/js/250fe880.f73c9be4.js rename to assets/js/250fe880.b1f3560a.js index 4eedecedd..9db66450c 100644 --- a/assets/js/250fe880.f73c9be4.js +++ b/assets/js/250fe880.b1f3560a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9099],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},1179:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:3,title:"injectTag"},i=void 0,c={unversionedId:"api/injection/inject-tag-decorator",id:"version-0.4.0/api/injection/inject-tag-decorator",title:"injectTag",description:"This decorator targets a property or a parameter and provides the services associated to that tag.",source:"@site/versioned_docs/version-0.4.0/api/injection/inject-tag-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-tag-decorator",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"injectTag"},sidebar:"sidebar",previous:{title:"inject",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator"},next:{title:"injectFromBase",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the services associated to that tag."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectTag } from '@cuaklabs/iocuak';\n\nimport { dummyTag } from 'some/path';\n\nclass Dummy {\n @injectTag(dummyTag)\n public foo: unknown[];\n}\n\n")),(0,o.kt)("p",null,"Troperty ",(0,o.kt)("inlineCode",{parentName:"p"},"foo")," is injected with the services associated to the ",(0,o.kt)("inlineCode",{parentName:"p"},"dummyTag")," tag."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9099],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3518:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:3,title:"injectTag"},i=void 0,c={unversionedId:"api/injection/inject-tag-decorator",id:"version-0.4.0/api/injection/inject-tag-decorator",title:"injectTag",description:"This decorator targets a property or a parameter and provides the services associated to that tag.",source:"@site/versioned_docs/version-0.4.0/api/injection/inject-tag-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-tag-decorator",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"injectTag"},sidebar:"sidebar",previous:{title:"inject",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator"},next:{title:"injectFromBase",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the services associated to that tag."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectTag } from '@cuaklabs/iocuak';\n\nimport { dummyTag } from 'some/path';\n\nclass Dummy {\n @injectTag(dummyTag)\n public foo: unknown[];\n}\n\n")),(0,o.kt)("p",null,"Troperty ",(0,o.kt)("inlineCode",{parentName:"p"},"foo")," is injected with the services associated to the ",(0,o.kt)("inlineCode",{parentName:"p"},"dummyTag")," tag."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/263d6723.4f01583b.js b/assets/js/263d6723.4ffcb76d.js similarity index 98% rename from assets/js/263d6723.4f01583b.js rename to assets/js/263d6723.4ffcb76d.js index 62f3f5ca5..9a11d3b3f 100644 --- a/assets/js/263d6723.4f01583b.js +++ b/assets/js/263d6723.4ffcb76d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8721],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},b=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(t),b=o,m=d["".concat(l,".").concat(b)]||d[b]||p[b]||i;return t?r.createElement(m,a(a({ref:n},s),{},{components:t})):r.createElement(m,a({ref:n},s))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}b.displayName="MDXCreateElement"},9894:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Binding a service"},a=void 0,c={unversionedId:"tutorial/the-container-object/binding-a-service",id:"version-0.3.1/tutorial/the-container-object/binding-a-service",title:"Binding a service",description:"Services can be easily bound to the container calling it directly.",source:"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/binding-a-service.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/binding-a-service",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Binding a service"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction"},next:{title:"Creating instances",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances"}},l={},u=[],s={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Services can be easily bound to the container calling it directly."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container } from '@cuaklabs/iocuak';\n\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\n")),(0,o.kt)("p",null,"Services can also be bound through a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModule"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8721],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},b=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(t),b=o,m=d["".concat(l,".").concat(b)]||d[b]||p[b]||i;return t?r.createElement(m,a(a({ref:n},s),{},{components:t})):r.createElement(m,a({ref:n},s))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}b.displayName="MDXCreateElement"},7008:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Binding a service"},a=void 0,c={unversionedId:"tutorial/the-container-object/binding-a-service",id:"version-0.3.1/tutorial/the-container-object/binding-a-service",title:"Binding a service",description:"Services can be easily bound to the container calling it directly.",source:"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/binding-a-service.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/binding-a-service",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Binding a service"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction"},next:{title:"Creating instances",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances"}},l={},u=[],s={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Services can be easily bound to the container calling it directly."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container } from '@cuaklabs/iocuak';\n\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\n")),(0,o.kt)("p",null,"Services can also be bound through a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModule"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2a866bd1.6868a25d.js b/assets/js/2a866bd1.6868a25d.js deleted file mode 100644 index 7b5efb25e..000000000 --- a/assets/js/2a866bd1.6868a25d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3970],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(9496);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=i,g=d["".concat(c,".").concat(m)]||d[m]||u[m]||a;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},454:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7366),i=(n(9496),n(9613));const a={sidebar_position:1,title:"Binding"},o=void 0,s={unversionedId:"concepts/binding",id:"concepts/binding",title:"Binding",description:"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:",source:"@site/docs/concepts/binding.md",sourceDirName:"concepts",slug:"/concepts/binding",permalink:"/iocuak-docs/docs/next/concepts/binding",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Binding"},sidebar:"sidebar",previous:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata"},next:{title:"Class metadata",permalink:"/iocuak-docs/docs/next/concepts/class-metadata"}},c={},l=[{value:"TypeBinding",id:"typebinding",level:2},{value:"Binding scope",id:"binding-scope",level:3}],p={toc:l},d="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"id"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id. Any attempt to create a service matching this service id is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags associated. Any attempt to create a service matching one of these tags is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,i.kt)("p",null,"There are two kinds of bindings:"),(0,i.kt)("h2",{id:"typebinding"},"TypeBinding"),(0,i.kt)("p",null,"A class based binding. A type binding relies on a class constructor to instantiate the service."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Binding scope to determine wheter or not a service should be reused."),(0,i.kt)("td",{parentName:"tr",align:"center"},"BindingScope")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Class to be used to call its constructor"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Newable")))),(0,i.kt)("h3",{id:"binding-scope"},"Binding scope"),(0,i.kt)("p",null,"When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transient: An instance of this service is never reused."),(0,i.kt)("li",{parentName:"ul"},"Request: An instance of this service is reused if service is requested under the same ",(0,i.kt)("inlineCode",{parentName:"li"},"Container.get")," request.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Example"),": Given the services ",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),", both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),". In addition, ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"B"),". If ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," is injected on request scope, a request to the ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," service results in the same ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," instance being injected to both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Singleton: An instance of this service is always reused.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2a866bd1.e0c255a9.js b/assets/js/2a866bd1.e0c255a9.js new file mode 100644 index 000000000..15d304d6f --- /dev/null +++ b/assets/js/2a866bd1.e0c255a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3970],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(9496);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=i,g=d["".concat(c,".").concat(m)]||d[m]||u[m]||a;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3712:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7366),i=(n(9496),n(9613));const a={sidebar_position:1,title:"Binding"},o=void 0,s={unversionedId:"concepts/binding",id:"concepts/binding",title:"Binding",description:"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:",source:"@site/docs/concepts/binding.md",sourceDirName:"concepts",slug:"/concepts/binding",permalink:"/iocuak-docs/docs/next/concepts/binding",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Binding"},sidebar:"sidebar",previous:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata"},next:{title:"Class metadata",permalink:"/iocuak-docs/docs/next/concepts/class-metadata"}},c={},l=[{value:"TypeBinding",id:"typebinding",level:2},{value:"Binding scope",id:"binding-scope",level:3}],p={toc:l},d="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"id"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id. Any attempt to create a service matching this service id is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags associated. Any attempt to create a service matching one of these tags is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,i.kt)("p",null,"There are two kinds of bindings:"),(0,i.kt)("h2",{id:"typebinding"},"TypeBinding"),(0,i.kt)("p",null,"A class based binding. A type binding relies on a class constructor to instantiate the service."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Binding scope to determine wheter or not a service should be reused."),(0,i.kt)("td",{parentName:"tr",align:"center"},"BindingScope")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Class to be used to call its constructor"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Newable")))),(0,i.kt)("h3",{id:"binding-scope"},"Binding scope"),(0,i.kt)("p",null,"When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transient: An instance of this service is never reused."),(0,i.kt)("li",{parentName:"ul"},"Request: An instance of this service is reused if service is requested under the same ",(0,i.kt)("inlineCode",{parentName:"li"},"Container.get")," request.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Example"),": Given the services ",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),", both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),". In addition, ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"B"),". If ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," is injected on request scope, a request to the ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," service results in the same ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," instance being injected to both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Singleton: An instance of this service is always reused.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2b7a7e79.2463ef19.js b/assets/js/2b7a7e79.460b1a09.js similarity index 98% rename from assets/js/2b7a7e79.2463ef19.js rename to assets/js/2b7a7e79.460b1a09.js index ea0d0c582..f0350584e 100644 --- a/assets/js/2b7a7e79.2463ef19.js +++ b/assets/js/2b7a7e79.460b1a09.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2867],{9613:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),b=o,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},8703:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:1,title:"The injectable decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/injectable-decorator",id:"version-0.3.1/tutorial/decorating-classes/injectable-decorator",title:"The injectable decorator",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.3.1/tutorial/decorating-classes/injectable-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/injectable-decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"The injectable decorator"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/introduction"},next:{title:"The inject decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator"}},s={},l=[],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst barSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on singleton scope. Its service id is the barSymbol symbol\n */\n@injectable({\n id: barSymbol,\n scope: BindingScope.singleton,\n})\nclass Bar {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Consider ",(0,o.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2867],{9613:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),b=o,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},4447:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:1,title:"The injectable decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/injectable-decorator",id:"version-0.3.1/tutorial/decorating-classes/injectable-decorator",title:"The injectable decorator",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.3.1/tutorial/decorating-classes/injectable-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/injectable-decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"The injectable decorator"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/introduction"},next:{title:"The inject decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator"}},s={},l=[],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst barSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on singleton scope. Its service id is the barSymbol symbol\n */\n@injectable({\n id: barSymbol,\n scope: BindingScope.singleton,\n})\nclass Bar {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Consider ",(0,o.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2da43288.2e690b93.js b/assets/js/2da43288.ba799772.js similarity index 99% rename from assets/js/2da43288.2e690b93.js rename to assets/js/2da43288.ba799772.js index 590a514b5..ca048fedf 100644 --- a/assets/js/2da43288.2e690b93.js +++ b/assets/js/2da43288.ba799772.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2036],{9613:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>b});var a=n(9496);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?a.createElement(b,o(o({ref:t},s),{},{components:n})):a.createElement(b,o({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:r,o[1]=d;for(var c=2;c<i;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},9534:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=n(7366),r=(n(9496),n(9613));const i={sidebar_position:1,title:"Container API"},o=void 0,d={unversionedId:"api/container",id:"version-0.5.0/api/container",title:"Container API",description:"bind(type, options)",source:"@site/versioned_docs/version-0.5.0/api/container.md",sourceDirName:"api",slug:"/api/container",permalink:"/iocuak-docs/docs/api/container",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Container API"},sidebar:"sidebar",previous:{title:"Container module metadata",permalink:"/iocuak-docs/docs/concepts/container-module-metadata"},next:{title:"injectable",permalink:"/iocuak-docs/docs/api/injection/injectable-decorator"}},l={},c=[{value:"<code>bind(type, options)</code>",id:"bindtype-options",level:3},{value:"<code>bindToValue(options)</code>",id:"bindtovalueoptions",level:3},{value:"<code>get(serviceId)</code>",id:"getserviceid",level:3},{value:"<code>getByTag(tag)</code>",id:"getbytagtag",level:3},{value:"<code>getAllBindinds()</code>",id:"getallbindinds",level:3},{value:"<code>load(containerModule)</code>",id:"loadcontainermodule",level:3},{value:"<code>loadMetadata(containerModuleMetadata)</code>",id:"loadmetadatacontainermodulemetadata",level:3},{value:"<code>unbind(serviceId)</code>",id:"unbindserviceid",level:3}],s={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"bindtype-options"},(0,r.kt)("inlineCode",{parentName:"h3"},"bind(type, options)")),(0,r.kt)("p",null,"Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Binding scope to apply"),(0,r.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,r.kt)("h3",{id:"bindtovalueoptions"},(0,r.kt)("inlineCode",{parentName:"h3"},"bindToValue(options)")),(0,r.kt)("p",null,"Binds a value. The options parameter is described as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Value to bind"),(0,r.kt)("td",{parentName:"tr",align:"center"},"unknown")))),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values are always bound in singleton scope")),(0,r.kt)("h3",{id:"getserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"get(serviceId)")),(0,r.kt)("p",null,"Returns a service by its id. If necessary, the service is instantiated."),(0,r.kt)("p",null,"Consider the ",(0,r.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/concepts/binding"},"binding")," page as reference to know more about instance details."),(0,r.kt)("h3",{id:"getbytagtag"},(0,r.kt)("inlineCode",{parentName:"h3"},"getByTag(tag)")),(0,r.kt)("p",null,"Returns all the services associated to a tag. If necessary, services are instantiated."),(0,r.kt)("h3",{id:"getallbindinds"},(0,r.kt)("inlineCode",{parentName:"h3"},"getAllBindinds()")),(0,r.kt)("p",null,"Returns all the bindings registered in the container."),(0,r.kt)("h3",{id:"loadcontainermodule"},(0,r.kt)("inlineCode",{parentName:"h3"},"load(containerModule)")),(0,r.kt)("p",null,"Loads a container module."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,r.kt)("h3",{id:"loadmetadatacontainermodulemetadata"},(0,r.kt)("inlineCode",{parentName:"h3"},"loadMetadata(containerModuleMetadata)")),(0,r.kt)("p",null,"Loads container module metadata"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,r.kt)("h3",{id:"unbindserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"unbind(serviceId)")),(0,r.kt)("p",null,"Unbinds a bound service by its id."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2036],{9613:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>b});var a=n(9496);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?a.createElement(b,o(o({ref:t},s),{},{components:n})):a.createElement(b,o({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:r,o[1]=d;for(var c=2;c<i;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},8118:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=n(7366),r=(n(9496),n(9613));const i={sidebar_position:1,title:"Container API"},o=void 0,d={unversionedId:"api/container",id:"version-0.5.0/api/container",title:"Container API",description:"bind(type, options)",source:"@site/versioned_docs/version-0.5.0/api/container.md",sourceDirName:"api",slug:"/api/container",permalink:"/iocuak-docs/docs/api/container",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Container API"},sidebar:"sidebar",previous:{title:"Container module metadata",permalink:"/iocuak-docs/docs/concepts/container-module-metadata"},next:{title:"injectable",permalink:"/iocuak-docs/docs/api/injection/injectable-decorator"}},l={},c=[{value:"<code>bind(type, options)</code>",id:"bindtype-options",level:3},{value:"<code>bindToValue(options)</code>",id:"bindtovalueoptions",level:3},{value:"<code>get(serviceId)</code>",id:"getserviceid",level:3},{value:"<code>getByTag(tag)</code>",id:"getbytagtag",level:3},{value:"<code>getAllBindinds()</code>",id:"getallbindinds",level:3},{value:"<code>load(containerModule)</code>",id:"loadcontainermodule",level:3},{value:"<code>loadMetadata(containerModuleMetadata)</code>",id:"loadmetadatacontainermodulemetadata",level:3},{value:"<code>unbind(serviceId)</code>",id:"unbindserviceid",level:3}],s={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"bindtype-options"},(0,r.kt)("inlineCode",{parentName:"h3"},"bind(type, options)")),(0,r.kt)("p",null,"Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Binding scope to apply"),(0,r.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,r.kt)("h3",{id:"bindtovalueoptions"},(0,r.kt)("inlineCode",{parentName:"h3"},"bindToValue(options)")),(0,r.kt)("p",null,"Binds a value. The options parameter is described as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Value to bind"),(0,r.kt)("td",{parentName:"tr",align:"center"},"unknown")))),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values are always bound in singleton scope")),(0,r.kt)("h3",{id:"getserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"get(serviceId)")),(0,r.kt)("p",null,"Returns a service by its id. If necessary, the service is instantiated."),(0,r.kt)("p",null,"Consider the ",(0,r.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/concepts/binding"},"binding")," page as reference to know more about instance details."),(0,r.kt)("h3",{id:"getbytagtag"},(0,r.kt)("inlineCode",{parentName:"h3"},"getByTag(tag)")),(0,r.kt)("p",null,"Returns all the services associated to a tag. If necessary, services are instantiated."),(0,r.kt)("h3",{id:"getallbindinds"},(0,r.kt)("inlineCode",{parentName:"h3"},"getAllBindinds()")),(0,r.kt)("p",null,"Returns all the bindings registered in the container."),(0,r.kt)("h3",{id:"loadcontainermodule"},(0,r.kt)("inlineCode",{parentName:"h3"},"load(containerModule)")),(0,r.kt)("p",null,"Loads a container module."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,r.kt)("h3",{id:"loadmetadatacontainermodulemetadata"},(0,r.kt)("inlineCode",{parentName:"h3"},"loadMetadata(containerModuleMetadata)")),(0,r.kt)("p",null,"Loads container module metadata"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,r.kt)("h3",{id:"unbindserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"unbind(serviceId)")),(0,r.kt)("p",null,"Unbinds a bound service by its id."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32336a78.6d95b447.js b/assets/js/32336a78.319592e9.js similarity index 98% rename from assets/js/32336a78.6d95b447.js rename to assets/js/32336a78.319592e9.js index 86c0961c2..bc338fff0 100644 --- a/assets/js/32336a78.6d95b447.js +++ b/assets/js/32336a78.319592e9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5735],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(n),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},7037:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:4,title:"injectFromBase"},i=void 0,c={unversionedId:"api/injection/injectFromBase-decorator",id:"api/injection/injectFromBase-decorator",title:"injectFromBase",description:"@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.",source:"@site/docs/api/injection/injectFromBase-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectFromBase-decorator",permalink:"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"injectFromBase"},sidebar:"sidebar",previous:{title:"injectTag",permalink:"/iocuak-docs/docs/next/api/injection/inject-tag-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/next/api/metadata/introduction"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"@injectabe")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"@inject")," metadata are not propagated to child classes. ",(0,o.kt)("inlineCode",{parentName:"p"},"@injectFromBase")," decorator exists for that purpose."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject, injectable } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId, dummyBarServiceId } from 'some/path';\n\n@injectable()\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n/*\n * @injectFromBase() allows DummyChild to have a foo property with\n * the same metadata as if decorated with @inject(dummyFooServiceId\n */\n\n@injectable()\n@injectFromBase()\nclass DummyChild extends Dummy {\n @inject(dummyBarServiceId)\n public bar: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5735],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(n),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5733:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:4,title:"injectFromBase"},i=void 0,c={unversionedId:"api/injection/injectFromBase-decorator",id:"api/injection/injectFromBase-decorator",title:"injectFromBase",description:"@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.",source:"@site/docs/api/injection/injectFromBase-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectFromBase-decorator",permalink:"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"injectFromBase"},sidebar:"sidebar",previous:{title:"injectTag",permalink:"/iocuak-docs/docs/next/api/injection/inject-tag-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/next/api/metadata/introduction"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"@injectabe")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"@inject")," metadata are not propagated to child classes. ",(0,o.kt)("inlineCode",{parentName:"p"},"@injectFromBase")," decorator exists for that purpose."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject, injectable } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId, dummyBarServiceId } from 'some/path';\n\n@injectable()\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n/*\n * @injectFromBase() allows DummyChild to have a foo property with\n * the same metadata as if decorated with @inject(dummyFooServiceId\n */\n\n@injectable()\n@injectFromBase()\nclass DummyChild extends Dummy {\n @inject(dummyBarServiceId)\n public bar: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3654fd5c.8cac0f3b.js b/assets/js/3654fd5c.86aae805.js similarity index 98% rename from assets/js/3654fd5c.8cac0f3b.js rename to assets/js/3654fd5c.86aae805.js index 82f8b2f74..b066cb405 100644 --- a/assets/js/3654fd5c.8cac0f3b.js +++ b/assets/js/3654fd5c.86aae805.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[467],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var s=2;s<a;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},2808:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:3,title:"injectTag"},i=void 0,c={unversionedId:"api/injection/inject-tag-decorator",id:"api/injection/inject-tag-decorator",title:"injectTag",description:"This decorator targets a property or a parameter and provides the services associated to that tag.",source:"@site/docs/api/injection/inject-tag-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-tag-decorator",permalink:"/iocuak-docs/docs/next/api/injection/inject-tag-decorator",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"injectTag"},sidebar:"sidebar",previous:{title:"inject",permalink:"/iocuak-docs/docs/next/api/injection/inject-decorator"},next:{title:"injectFromBase",permalink:"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the services associated to that tag."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectTag } from '@cuaklabs/iocuak';\n\nimport { dummyTag } from 'some/path';\n\nclass Dummy {\n @injectTag(dummyTag)\n public foo: unknown[];\n}\n\n")),(0,o.kt)("p",null,"Troperty ",(0,o.kt)("inlineCode",{parentName:"p"},"foo")," is injected with the services associated to the ",(0,o.kt)("inlineCode",{parentName:"p"},"dummyTag")," tag."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[467],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var s=2;s<a;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},7149:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:3,title:"injectTag"},i=void 0,c={unversionedId:"api/injection/inject-tag-decorator",id:"api/injection/inject-tag-decorator",title:"injectTag",description:"This decorator targets a property or a parameter and provides the services associated to that tag.",source:"@site/docs/api/injection/inject-tag-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-tag-decorator",permalink:"/iocuak-docs/docs/next/api/injection/inject-tag-decorator",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"injectTag"},sidebar:"sidebar",previous:{title:"inject",permalink:"/iocuak-docs/docs/next/api/injection/inject-decorator"},next:{title:"injectFromBase",permalink:"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the services associated to that tag."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectTag } from '@cuaklabs/iocuak';\n\nimport { dummyTag } from 'some/path';\n\nclass Dummy {\n @injectTag(dummyTag)\n public foo: unknown[];\n}\n\n")),(0,o.kt)("p",null,"Troperty ",(0,o.kt)("inlineCode",{parentName:"p"},"foo")," is injected with the services associated to the ",(0,o.kt)("inlineCode",{parentName:"p"},"dummyTag")," tag."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3921882b.2c6f0c4c.js b/assets/js/3921882b.e10b5fc9.js similarity index 98% rename from assets/js/3921882b.2c6f0c4c.js rename to assets/js/3921882b.e10b5fc9.js index d17d87f68..b795f6f7a 100644 --- a/assets/js/3921882b.2c6f0c4c.js +++ b/assets/js/3921882b.e10b5fc9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1149],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},9100:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:2,title:"inject"},a=void 0,c={unversionedId:"api/injection/inject-decorator",id:"version-0.4.0/api/injection/inject-decorator",title:"inject",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.4.0/api/injection/inject-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-decorator",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"inject"},sidebar:"sidebar",previous:{title:"injectable",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator"},next:{title:"injectTag",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1149],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},7661:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:2,title:"inject"},a=void 0,c={unversionedId:"api/injection/inject-decorator",id:"version-0.4.0/api/injection/inject-decorator",title:"inject",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.4.0/api/injection/inject-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-decorator",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"inject"},sidebar:"sidebar",previous:{title:"injectable",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator"},next:{title:"injectTag",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c73646c.f34376c8.js b/assets/js/3c73646c.ab686599.js similarity index 99% rename from assets/js/3c73646c.f34376c8.js rename to assets/js/3c73646c.ab686599.js index 68bb4d3ba..b9ff93756 100644 --- a/assets/js/3c73646c.f34376c8.js +++ b/assets/js/3c73646c.ab686599.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3824],{9613:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),o=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},d=function(e){var t=o(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=o(a),u=r,k=p["".concat(c,".").concat(u)]||p[u]||m[u]||l;return a?n.createElement(k,s(s({ref:t},d),{},{components:a})):n.createElement(k,s({ref:t},d))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,s=new Array(l);s[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var o=2;o<l;o++)s[o]=a[o];return n.createElement.apply(null,s)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8743:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>o});var n=a(7366),r=(a(9496),a(9613));const l={sidebar_position:2,title:"Class metadata"},s=void 0,i={unversionedId:"concepts/class-metadata",id:"concepts/class-metadata",title:"Class metadata",description:"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.",source:"@site/docs/concepts/class-metadata.md",sourceDirName:"concepts",slug:"/concepts/class-metadata",permalink:"/iocuak-docs/docs/next/concepts/class-metadata",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Class metadata"},sidebar:"sidebar",previous:{title:"Binding",permalink:"/iocuak-docs/docs/next/concepts/binding"},next:{title:"Container module metadata",permalink:"/iocuak-docs/docs/next/concepts/container-module-metadata"}},c={},o=[{value:"ClassElementMetadata",id:"classelementmetadata",level:2},{value:"ClassElementServiceIdMetadata",id:"classelementserviceidmetadata",level:3},{value:"ClassElementTagMetadataApi",id:"classelementtagmetadataapi",level:3}],d={toc:o},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"constructorArguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Constructor arguments metadata"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadata")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"properties"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Properties metadata."),(0,r.kt)("td",{parentName:"tr",align:"center"},"Map<string ","|"," symbol, ClassElementMetadata>")))),(0,r.kt)("h2",{id:"classelementmetadata"},"ClassElementMetadata"),(0,r.kt)("p",null,"Class element metadata can be of two different kinds:"),(0,r.kt)("h3",{id:"classelementserviceidmetadata"},"ClassElementServiceIdMetadata"),(0,r.kt)("p",null,"Represents a service dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.serviceId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,r.kt)("h3",{id:"classelementtagmetadataapi"},"ClassElementTagMetadataApi"),(0,r.kt)("p",null,"Represents services associated to a tag dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.tag")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tag associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3824],{9613:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),o=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},d=function(e){var t=o(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=o(a),u=r,k=p["".concat(c,".").concat(u)]||p[u]||m[u]||l;return a?n.createElement(k,s(s({ref:t},d),{},{components:a})):n.createElement(k,s({ref:t},d))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,s=new Array(l);s[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var o=2;o<l;o++)s[o]=a[o];return n.createElement.apply(null,s)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},2287:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>o});var n=a(7366),r=(a(9496),a(9613));const l={sidebar_position:2,title:"Class metadata"},s=void 0,i={unversionedId:"concepts/class-metadata",id:"concepts/class-metadata",title:"Class metadata",description:"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.",source:"@site/docs/concepts/class-metadata.md",sourceDirName:"concepts",slug:"/concepts/class-metadata",permalink:"/iocuak-docs/docs/next/concepts/class-metadata",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Class metadata"},sidebar:"sidebar",previous:{title:"Binding",permalink:"/iocuak-docs/docs/next/concepts/binding"},next:{title:"Container module metadata",permalink:"/iocuak-docs/docs/next/concepts/container-module-metadata"}},c={},o=[{value:"ClassElementMetadata",id:"classelementmetadata",level:2},{value:"ClassElementServiceIdMetadata",id:"classelementserviceidmetadata",level:3},{value:"ClassElementTagMetadataApi",id:"classelementtagmetadataapi",level:3}],d={toc:o},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"constructorArguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Constructor arguments metadata"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadata")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"properties"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Properties metadata."),(0,r.kt)("td",{parentName:"tr",align:"center"},"Map<string ","|"," symbol, ClassElementMetadata>")))),(0,r.kt)("h2",{id:"classelementmetadata"},"ClassElementMetadata"),(0,r.kt)("p",null,"Class element metadata can be of two different kinds:"),(0,r.kt)("h3",{id:"classelementserviceidmetadata"},"ClassElementServiceIdMetadata"),(0,r.kt)("p",null,"Represents a service dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.serviceId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,r.kt)("h3",{id:"classelementtagmetadataapi"},"ClassElementTagMetadataApi"),(0,r.kt)("p",null,"Represents services associated to a tag dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.tag")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tag associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3d354aff.02b83435.js b/assets/js/3d354aff.e0519244.js similarity index 98% rename from assets/js/3d354aff.02b83435.js rename to assets/js/3d354aff.e0519244.js index 73c73cd23..3ae31e00d 100644 --- a/assets/js/3d354aff.02b83435.js +++ b/assets/js/3d354aff.e0519244.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8141],{9613:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),b=o,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},7276:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:1,title:"The injectable decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/injectable-decorator",id:"tutorial/decorating-classes/injectable-decorator",title:"The injectable decorator",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/docs/tutorial/decorating-classes/injectable-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/injectable-decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"The injectable decorator"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/introduction"},next:{title:"The inject decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator"}},s={},l=[],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst barSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on singleton scope. Its service id is the barSymbol symbol\n */\n@injectable({\n id: barSymbol,\n scope: BindingScope.singleton,\n})\nclass Bar {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Consider ",(0,o.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8141],{9613:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),b=o,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},1444:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:1,title:"The injectable decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/injectable-decorator",id:"tutorial/decorating-classes/injectable-decorator",title:"The injectable decorator",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/docs/tutorial/decorating-classes/injectable-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/injectable-decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"The injectable decorator"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/introduction"},next:{title:"The inject decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator"}},s={},l=[],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst barSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on singleton scope. Its service id is the barSymbol symbol\n */\n@injectable({\n id: barSymbol,\n scope: BindingScope.singleton,\n})\nclass Bar {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Consider ",(0,o.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4292aabd.c1f90397.js b/assets/js/4292aabd.14d3a5b7.js similarity index 98% rename from assets/js/4292aabd.c1f90397.js rename to assets/js/4292aabd.14d3a5b7.js index d919e8126..74739c215 100644 --- a/assets/js/4292aabd.c1f90397.js +++ b/assets/js/4292aabd.14d3a5b7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1506],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var r=n(9496);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),b=a,u=d["".concat(s,".").concat(b)]||d[b]||m[b]||o;return n?r.createElement(u,i(i({ref:t},p),{},{components:n})):r.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},4330:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7366),a=(n(9496),n(9613));const o={sidebar_position:1,title:"injectable"},i=void 0,c={unversionedId:"api/injection/injectable-decorator",id:"version-0.4.0/api/injection/injectable-decorator",title:"injectable",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.4.0/api/injection/injectable-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectable-decorator",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"injectable"},sidebar:"sidebar",previous:{title:"Container API",permalink:"/iocuak-docs/docs/0.4.0/api/container"},next:{title:"inject",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator"}},s={},l=[],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,a.kt)("p",null,"The options parameter is described as follows:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Binding scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Consider ",(0,a.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1506],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var r=n(9496);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),b=a,u=d["".concat(s,".").concat(b)]||d[b]||m[b]||o;return n?r.createElement(u,i(i({ref:t},p),{},{components:n})):r.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},1925:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7366),a=(n(9496),n(9613));const o={sidebar_position:1,title:"injectable"},i=void 0,c={unversionedId:"api/injection/injectable-decorator",id:"version-0.4.0/api/injection/injectable-decorator",title:"injectable",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.4.0/api/injection/injectable-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectable-decorator",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"injectable"},sidebar:"sidebar",previous:{title:"Container API",permalink:"/iocuak-docs/docs/0.4.0/api/container"},next:{title:"inject",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator"}},s={},l=[],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,a.kt)("p",null,"The options parameter is described as follows:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Binding scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Consider ",(0,a.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/429c1a5e.4432fa35.js b/assets/js/429c1a5e.afc9de83.js similarity index 99% rename from assets/js/429c1a5e.4432fa35.js rename to assets/js/429c1a5e.afc9de83.js index e0f91cad9..b0ac100f5 100644 --- a/assets/js/429c1a5e.4432fa35.js +++ b/assets/js/429c1a5e.afc9de83.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9435],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var a=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=l(t),p=o,f=u["".concat(c,".").concat(p)]||u[p]||m[p]||r;return t?a.createElement(f,i(i({ref:n},s),{},{components:t})):a.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=p;var d={};for(var c in n)hasOwnProperty.call(n,c)&&(d[c]=n[c]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var l=2;l<r;l++)i[l]=t[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},3721:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var a=t(7366),o=(t(9496),t(9613));const r={sidebar_position:2,title:"Loading modules from metadata"},i=void 0,d={unversionedId:"tutorial/container-modules/loading-modules-from-metadata",id:"version-0.3.1/tutorial/container-modules/loading-modules-from-metadata",title:"Loading modules from metadata",description:"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.",source:"@site/versioned_docs/version-0.3.1/tutorial/container-modules/loading-modules-from-metadata.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/loading-modules-from-metadata",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Loading modules from metadata"},sidebar:"sidebar",previous:{title:"Creating modules",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules"},next:{title:"Binding",permalink:"/iocuak-docs/docs/0.3.1/concepts/binding"}},c={},l=[{value:"Container Module Factory Metatada",id:"container-module-factory-metatada",level:3},{value:"Container Module Class Metadata",id:"container-module-class-metadata",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database."),(0,o.kt)("p",null,"Container module metadata is provided for those purposes."),(0,o.kt)("h3",{id:"container-module-factory-metatada"},"Container Module Factory Metatada"),(0,o.kt)("p",null,"This approach uses a factory to create the module. This metadata can receive an ",(0,o.kt)("inlineCode",{parentName:"p"},"injects")," property to receive injected dependencies."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module."),(0,o.kt)("h3",{id:"container-module-class-metadata"},"Container Module Class Metadata"),(0,o.kt)("p",null,"This approach receives a class which is used to create the module."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModule,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\n@injectable()\nclass MyContainerModule implements ContainerModule {\n\n constructor(\n @inject(Dependency)\n public readonly someServiceDependency: Dependency,\n ) {}\n\n public load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n}\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n imports: [someContainerModuleMetadataDependency],\n module: MyContainerModule,\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports."),(0,o.kt)("p",null,"This approach is highly inspired on ",(0,o.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/fundamentals/dynamic-modules"},"NestJs modules"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9435],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var a=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=l(t),p=o,f=u["".concat(c,".").concat(p)]||u[p]||m[p]||r;return t?a.createElement(f,i(i({ref:n},s),{},{components:t})):a.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=p;var d={};for(var c in n)hasOwnProperty.call(n,c)&&(d[c]=n[c]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var l=2;l<r;l++)i[l]=t[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},9418:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var a=t(7366),o=(t(9496),t(9613));const r={sidebar_position:2,title:"Loading modules from metadata"},i=void 0,d={unversionedId:"tutorial/container-modules/loading-modules-from-metadata",id:"version-0.3.1/tutorial/container-modules/loading-modules-from-metadata",title:"Loading modules from metadata",description:"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.",source:"@site/versioned_docs/version-0.3.1/tutorial/container-modules/loading-modules-from-metadata.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/loading-modules-from-metadata",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Loading modules from metadata"},sidebar:"sidebar",previous:{title:"Creating modules",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules"},next:{title:"Binding",permalink:"/iocuak-docs/docs/0.3.1/concepts/binding"}},c={},l=[{value:"Container Module Factory Metatada",id:"container-module-factory-metatada",level:3},{value:"Container Module Class Metadata",id:"container-module-class-metadata",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database."),(0,o.kt)("p",null,"Container module metadata is provided for those purposes."),(0,o.kt)("h3",{id:"container-module-factory-metatada"},"Container Module Factory Metatada"),(0,o.kt)("p",null,"This approach uses a factory to create the module. This metadata can receive an ",(0,o.kt)("inlineCode",{parentName:"p"},"injects")," property to receive injected dependencies."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module."),(0,o.kt)("h3",{id:"container-module-class-metadata"},"Container Module Class Metadata"),(0,o.kt)("p",null,"This approach receives a class which is used to create the module."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModule,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\n@injectable()\nclass MyContainerModule implements ContainerModule {\n\n constructor(\n @inject(Dependency)\n public readonly someServiceDependency: Dependency,\n ) {}\n\n public load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n}\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n imports: [someContainerModuleMetadataDependency],\n module: MyContainerModule,\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports."),(0,o.kt)("p",null,"This approach is highly inspired on ",(0,o.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/fundamentals/dynamic-modules"},"NestJs modules"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4614d64c.0d47143b.js b/assets/js/4614d64c.7f56a26f.js similarity index 98% rename from assets/js/4614d64c.0d47143b.js rename to assets/js/4614d64c.7f56a26f.js index 4865e5b8b..20667a8b0 100644 --- a/assets/js/4614d64c.0d47143b.js +++ b/assets/js/4614d64c.7f56a26f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9332],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>b});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),d=u(r),f=o,b=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(b,c(c({ref:t},l),{},{components:r})):n.createElement(b,c({ref:t},l))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,c[1]=a;for(var u=2;u<i;u++)c[u]=r[u];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},5198:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1,title:"Introduction"},c=void 0,a={unversionedId:"tutorial/the-container-object/introduction",id:"tutorial/the-container-object/introduction",title:"Introduction",description:"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.",source:"@site/docs/tutorial/the-container-object/introduction.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/introduction",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/introduction",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"The inject decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator"},next:{title:"Binding a service",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9332],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>b});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),d=u(r),f=o,b=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(b,c(c({ref:t},l),{},{components:r})):n.createElement(b,c({ref:t},l))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,c[1]=a;for(var u=2;u<i;u++)c[u]=r[u];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},8068:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1,title:"Introduction"},c=void 0,a={unversionedId:"tutorial/the-container-object/introduction",id:"tutorial/the-container-object/introduction",title:"Introduction",description:"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.",source:"@site/docs/tutorial/the-container-object/introduction.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/introduction",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/introduction",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"The inject decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator"},next:{title:"Binding a service",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49b0859b.5970f139.js b/assets/js/49b0859b.006d91bf.js similarity index 98% rename from assets/js/49b0859b.5970f139.js rename to assets/js/49b0859b.006d91bf.js index 86357b23b..8a5b77158 100644 --- a/assets/js/49b0859b.5970f139.js +++ b/assets/js/49b0859b.006d91bf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6847],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=p(n),u=o,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2588:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:4,title:"injectFromBase"},i=void 0,c={unversionedId:"api/injection/injectFromBase-decorator",id:"version-0.3.1/api/injection/injectFromBase-decorator",title:"injectFromBase",description:"@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.",source:"@site/versioned_docs/version-0.3.1/api/injection/injectFromBase-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectFromBase-decorator",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"injectFromBase"},sidebar:"sidebar",previous:{title:"injectTag",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/introduction"}},s={},p=[],l={toc:p},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"@injectabe")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"@inject")," metadata are not propagated to child classes. ",(0,o.kt)("inlineCode",{parentName:"p"},"@injectFromBase")," decorator exists for that purpose."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject, injectable } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId, dummyBarServiceId } from 'some/path';\n\n@injectable()\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n/*\n * @injectFromBase() allows DummyChild to have a foo property with\n * the same metadata as if decorated with @inject(dummyFooServiceId\n */\n\n@injectable()\n@injectFromBase()\nclass DummyChild extends Dummy {\n @inject(dummyBarServiceId)\n public bar: unknown;\n}\n\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6847],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=p(n),u=o,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},3584:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:4,title:"injectFromBase"},i=void 0,c={unversionedId:"api/injection/injectFromBase-decorator",id:"version-0.3.1/api/injection/injectFromBase-decorator",title:"injectFromBase",description:"@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.",source:"@site/versioned_docs/version-0.3.1/api/injection/injectFromBase-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectFromBase-decorator",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"injectFromBase"},sidebar:"sidebar",previous:{title:"injectTag",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/introduction"}},s={},p=[],l={toc:p},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"@injectabe")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"@inject")," metadata are not propagated to child classes. ",(0,o.kt)("inlineCode",{parentName:"p"},"@injectFromBase")," decorator exists for that purpose."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject, injectable } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId, dummyBarServiceId } from 'some/path';\n\n@injectable()\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n/*\n * @injectFromBase() allows DummyChild to have a foo property with\n * the same metadata as if decorated with @inject(dummyFooServiceId\n */\n\n@injectable()\n@injectFromBase()\nclass DummyChild extends Dummy {\n @inject(dummyBarServiceId)\n public bar: unknown;\n}\n\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b1346bc.b1b662e6.js b/assets/js/4b1346bc.fe8e782b.js similarity index 50% rename from assets/js/4b1346bc.b1b662e6.js rename to assets/js/4b1346bc.fe8e782b.js index 13d81cb45..85940d6e1 100644 --- a/assets/js/4b1346bc.b1b662e6.js +++ b/assets/js/4b1346bc.fe8e782b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6944],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=p(n),u=o,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},280:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:4,title:"injectFromBase"},i=void 0,c={unversionedId:"api/injection/injectFromBase-decorator",id:"version-0.4.0/api/injection/injectFromBase-decorator",title:"injectFromBase",description:"@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.",source:"@site/versioned_docs/version-0.4.0/api/injection/injectFromBase-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectFromBase-decorator",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"injectFromBase"},sidebar:"sidebar",previous:{title:"injectTag",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/introduction"}},s={},p=[],l={toc:p},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"@injectabe")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"@inject")," metadata are not propagated to child classes. ",(0,o.kt)("inlineCode",{parentName:"p"},"@injectFromBase")," decorator exists for that purpose."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject, injectable } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId, dummyBarServiceId } from 'some/path';\n\n@injectable()\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n/*\n * @injectFromBase() allows DummyChild to have a foo property with\n * the same metadata as if decorated with @inject(dummyFooServiceId\n */\n\n@injectable()\n@injectFromBase()\nclass DummyChild extends Dummy {\n @inject(dummyBarServiceId)\n public bar: unknown;\n}\n\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6944],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=p(n),u=o,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2334:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:4,title:"injectFromBase"},i=void 0,c={unversionedId:"api/injection/injectFromBase-decorator",id:"version-0.4.0/api/injection/injectFromBase-decorator",title:"injectFromBase",description:"@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.",source:"@site/versioned_docs/version-0.4.0/api/injection/injectFromBase-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectFromBase-decorator",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"injectFromBase"},sidebar:"sidebar",previous:{title:"injectTag",permalink:"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/introduction"}},s={},p=[],l={toc:p},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"@injectabe")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"@inject")," metadata are not propagated to child classes. ",(0,o.kt)("inlineCode",{parentName:"p"},"@injectFromBase")," decorator exists for that purpose."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject, injectable } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId, dummyBarServiceId } from 'some/path';\n\n@injectable()\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n/*\n * @injectFromBase() allows DummyChild to have a foo property with\n * the same metadata as if decorated with @inject(dummyFooServiceId\n */\n\n@injectable()\n@injectFromBase()\nclass DummyChild extends Dummy {\n @inject(dummyBarServiceId)\n public bar: unknown;\n}\n\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/555e17e8.645e5d14.js b/assets/js/555e17e8.b3c6c4fa.js similarity index 98% rename from assets/js/555e17e8.645e5d14.js rename to assets/js/555e17e8.b3c6c4fa.js index 71d9b43fd..fc2d6b86c 100644 --- a/assets/js/555e17e8.645e5d14.js +++ b/assets/js/555e17e8.b3c6c4fa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6052],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var o=r(9496);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function c(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){n(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 i(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),m=n,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?o.createElement(f,c(c({ref:t},p),{},{components:r})):o.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:n,c[1]=i;for(var l=2;l<a;l++)c[l]=r[l];return o.createElement.apply(null,c)}return o.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6064:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=r(7366),n=(r(9496),r(9613));const a={sidebar_position:2,title:"The inject decorator"},c=void 0,i={unversionedId:"tutorial/decorating-classes/inject-decorator",id:"tutorial/decorating-classes/inject-decorator",title:"The inject decorator",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/docs/tutorial/decorating-classes/inject-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/inject-decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"The inject decorator"},sidebar:"sidebar",previous:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/introduction"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")),(0,n.kt)("p",null,"This way the IoC container knows the property ",(0,n.kt)("inlineCode",{parentName:"p"},"foo")," should be injected with the service associated to ",(0,n.kt)("inlineCode",{parentName:"p"},"dummyFooServiceId"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6052],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var o=r(9496);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function c(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){n(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 i(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),m=n,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?o.createElement(f,c(c({ref:t},p),{},{components:r})):o.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:n,c[1]=i;for(var l=2;l<a;l++)c[l]=r[l];return o.createElement.apply(null,c)}return o.createElement.apply(null,r)}m.displayName="MDXCreateElement"},2726:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=r(7366),n=(r(9496),r(9613));const a={sidebar_position:2,title:"The inject decorator"},c=void 0,i={unversionedId:"tutorial/decorating-classes/inject-decorator",id:"tutorial/decorating-classes/inject-decorator",title:"The inject decorator",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/docs/tutorial/decorating-classes/inject-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/inject-decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"The inject decorator"},sidebar:"sidebar",previous:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/introduction"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")),(0,n.kt)("p",null,"This way the IoC container knows the property ",(0,n.kt)("inlineCode",{parentName:"p"},"foo")," should be injected with the service associated to ",(0,n.kt)("inlineCode",{parentName:"p"},"dummyFooServiceId"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/58d9cd49.f9bc3ab5.js b/assets/js/58d9cd49.de66798b.js similarity index 98% rename from assets/js/58d9cd49.f9bc3ab5.js rename to assets/js/58d9cd49.de66798b.js index ceaa38d1b..eb9767c7d 100644 --- a/assets/js/58d9cd49.f9bc3ab5.js +++ b/assets/js/58d9cd49.de66798b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7538],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||l[m]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},9014:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:1,title:"Introduction"},i=void 0,c={unversionedId:"api/metadata/introduction",id:"version-0.5.0/api/metadata/introduction",title:"Introduction",description:"This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.",source:"@site/versioned_docs/version-0.5.0/api/metadata/introduction.md",sourceDirName:"api/metadata",slug:"/api/metadata/introduction",permalink:"/iocuak-docs/docs/api/metadata/introduction",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"injectFromBase",permalink:"/iocuak-docs/docs/api/injection/injectFromBase-decorator"},next:{title:"Metadata provider",permalink:"/iocuak-docs/docs/api/metadata/metadata-provider"}},s={},d=[],p={toc:d},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This library uses ",(0,o.kt)("inlineCode",{parentName:"p"},"metadata")," to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between ",(0,o.kt)("inlineCode",{parentName:"p"},"iocuak")," and other IoC libraries."))}l.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7538],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||l[m]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},9154:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:1,title:"Introduction"},i=void 0,c={unversionedId:"api/metadata/introduction",id:"version-0.5.0/api/metadata/introduction",title:"Introduction",description:"This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.",source:"@site/versioned_docs/version-0.5.0/api/metadata/introduction.md",sourceDirName:"api/metadata",slug:"/api/metadata/introduction",permalink:"/iocuak-docs/docs/api/metadata/introduction",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"injectFromBase",permalink:"/iocuak-docs/docs/api/injection/injectFromBase-decorator"},next:{title:"Metadata provider",permalink:"/iocuak-docs/docs/api/metadata/metadata-provider"}},s={},d=[],p={toc:d},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This library uses ",(0,o.kt)("inlineCode",{parentName:"p"},"metadata")," to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between ",(0,o.kt)("inlineCode",{parentName:"p"},"iocuak")," and other IoC libraries."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59a64286.262d4d09.js b/assets/js/59a64286.13f5d01b.js similarity index 98% rename from assets/js/59a64286.262d4d09.js rename to assets/js/59a64286.13f5d01b.js index d82de1f96..2692056f6 100644 --- a/assets/js/59a64286.262d4d09.js +++ b/assets/js/59a64286.13f5d01b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2140],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=s(r),f=o,y=p["".concat(u,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},3069:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1},a="Introduction",c={unversionedId:"tutorial/introduction",id:"tutorial/introduction",title:"Introduction",description:"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.",source:"@site/docs/tutorial/introduction.md",sourceDirName:"tutorial",slug:"/tutorial/introduction",permalink:"/iocuak-docs/docs/next/tutorial/introduction",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",next:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator"}},u={},s=[],l={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques."),(0,o.kt)("p",null,"This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2140],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=s(r),f=o,y=p["".concat(u,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},4768:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1},a="Introduction",c={unversionedId:"tutorial/introduction",id:"tutorial/introduction",title:"Introduction",description:"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.",source:"@site/docs/tutorial/introduction.md",sourceDirName:"tutorial",slug:"/tutorial/introduction",permalink:"/iocuak-docs/docs/next/tutorial/introduction",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",next:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator"}},u={},s=[],l={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques."),(0,o.kt)("p",null,"This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5b54de31.4fc59562.js b/assets/js/5b54de31.2d175fa0.js similarity index 98% rename from assets/js/5b54de31.4fc59562.js rename to assets/js/5b54de31.2d175fa0.js index a16dcfa36..0782c5313 100644 --- a/assets/js/5b54de31.4fc59562.js +++ b/assets/js/5b54de31.2d175fa0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[378],{9613:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},9905:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:3,title:"Creating instances"},i=void 0,c={unversionedId:"tutorial/the-container-object/creating-instances",id:"version-0.4.0/tutorial/the-container-object/creating-instances",title:"Creating instances",description:"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated",source:"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/creating-instances.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/creating-instances",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances",draft:!1,tags:[],version:"0.4.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Creating instances"},sidebar:"sidebar",previous:{title:"Binding a service",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container, injectable } from '@cuaklabs/iocuak';\n\n@injectable()\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\nconst dummyInstance: Dummy = container.get(Dummy);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[378],{9613:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},2855:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:3,title:"Creating instances"},i=void 0,c={unversionedId:"tutorial/the-container-object/creating-instances",id:"version-0.4.0/tutorial/the-container-object/creating-instances",title:"Creating instances",description:"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated",source:"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/creating-instances.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/creating-instances",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances",draft:!1,tags:[],version:"0.4.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Creating instances"},sidebar:"sidebar",previous:{title:"Binding a service",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container, injectable } from '@cuaklabs/iocuak';\n\n@injectable()\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\nconst dummyInstance: Dummy = container.get(Dummy);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5b645440.f7208092.js b/assets/js/5b645440.869ef8f2.js similarity index 98% rename from assets/js/5b645440.f7208092.js rename to assets/js/5b645440.869ef8f2.js index 0647f579c..57611069a 100644 --- a/assets/js/5b645440.f7208092.js +++ b/assets/js/5b645440.869ef8f2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9128],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(s,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},7160:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1},a="Introduction",c={unversionedId:"tutorial/introduction",id:"version-0.4.0/tutorial/introduction",title:"Introduction",description:"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.",source:"@site/versioned_docs/version-0.4.0/tutorial/introduction.md",sourceDirName:"tutorial",slug:"/tutorial/introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/introduction",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",next:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator"}},s={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques."),(0,o.kt)("p",null,"This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9128],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(s,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},1908:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1},a="Introduction",c={unversionedId:"tutorial/introduction",id:"version-0.4.0/tutorial/introduction",title:"Introduction",description:"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.",source:"@site/versioned_docs/version-0.4.0/tutorial/introduction.md",sourceDirName:"tutorial",slug:"/tutorial/introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/introduction",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",next:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator"}},s={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques."),(0,o.kt)("p",null,"This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5c7e0021.029ae82f.js b/assets/js/5c7e0021.948b601c.js similarity index 98% rename from assets/js/5c7e0021.029ae82f.js rename to assets/js/5c7e0021.948b601c.js index fc9474847..5453957b8 100644 --- a/assets/js/5c7e0021.029ae82f.js +++ b/assets/js/5c7e0021.948b601c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1648],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||l[m]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6766:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:1,title:"Introduction"},i=void 0,c={unversionedId:"api/metadata/introduction",id:"version-0.4.0/api/metadata/introduction",title:"Introduction",description:"This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.",source:"@site/versioned_docs/version-0.4.0/api/metadata/introduction.md",sourceDirName:"api/metadata",slug:"/api/metadata/introduction",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/introduction",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"injectFromBase",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator"},next:{title:"Metadata provider",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider"}},s={},d=[],p={toc:d},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This library uses ",(0,o.kt)("inlineCode",{parentName:"p"},"metadata")," to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between ",(0,o.kt)("inlineCode",{parentName:"p"},"iocuak")," and other IoC libraries."))}l.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1648],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||l[m]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3957:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:1,title:"Introduction"},i=void 0,c={unversionedId:"api/metadata/introduction",id:"version-0.4.0/api/metadata/introduction",title:"Introduction",description:"This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.",source:"@site/versioned_docs/version-0.4.0/api/metadata/introduction.md",sourceDirName:"api/metadata",slug:"/api/metadata/introduction",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/introduction",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"injectFromBase",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator"},next:{title:"Metadata provider",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider"}},s={},d=[],p={toc:d},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This library uses ",(0,o.kt)("inlineCode",{parentName:"p"},"metadata")," to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between ",(0,o.kt)("inlineCode",{parentName:"p"},"iocuak")," and other IoC libraries."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6074383c.55dbcb7a.js b/assets/js/6074383c.4adf7c6c.js similarity index 98% rename from assets/js/6074383c.55dbcb7a.js rename to assets/js/6074383c.4adf7c6c.js index 102f6e7fd..f614fa8d8 100644 --- a/assets/js/6074383c.55dbcb7a.js +++ b/assets/js/6074383c.4adf7c6c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2344],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var o=r(9496);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}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){n(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 c(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=n,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?o.createElement(f,i(i({ref:t},p),{},{components:r})):o.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:n,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6928:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=r(7366),n=(r(9496),r(9613));const a={sidebar_position:2,title:"The inject decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/inject-decorator",id:"version-0.5.0/tutorial/decorating-classes/inject-decorator",title:"The inject decorator",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.5.0/tutorial/decorating-classes/inject-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/inject-decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"The inject decorator"},sidebar:"sidebar",previous:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/the-container-object/introduction"}},s={},l=[],p={toc:l},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")),(0,n.kt)("p",null,"This way the IoC container knows the property ",(0,n.kt)("inlineCode",{parentName:"p"},"foo")," should be injected with the service associated to ",(0,n.kt)("inlineCode",{parentName:"p"},"dummyFooServiceId"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2344],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var o=r(9496);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}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){n(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 c(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=n,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?o.createElement(f,i(i({ref:t},p),{},{components:r})):o.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:n,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}m.displayName="MDXCreateElement"},4379:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=r(7366),n=(r(9496),r(9613));const a={sidebar_position:2,title:"The inject decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/inject-decorator",id:"version-0.5.0/tutorial/decorating-classes/inject-decorator",title:"The inject decorator",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.5.0/tutorial/decorating-classes/inject-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/inject-decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"The inject decorator"},sidebar:"sidebar",previous:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/the-container-object/introduction"}},s={},l=[],p={toc:l},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")),(0,n.kt)("p",null,"This way the IoC container knows the property ",(0,n.kt)("inlineCode",{parentName:"p"},"foo")," should be injected with the service associated to ",(0,n.kt)("inlineCode",{parentName:"p"},"dummyFooServiceId"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6254d461.918fea02.js b/assets/js/6254d461.28670d82.js similarity index 98% rename from assets/js/6254d461.918fea02.js rename to assets/js/6254d461.28670d82.js index 4d754bfa0..121b4fa6b 100644 --- a/assets/js/6254d461.918fea02.js +++ b/assets/js/6254d461.28670d82.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5586],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var r=n(9496);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),b=a,u=d["".concat(s,".").concat(b)]||d[b]||m[b]||o;return n?r.createElement(u,i(i({ref:t},p),{},{components:n})):r.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},3210:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7366),a=(n(9496),n(9613));const o={sidebar_position:1,title:"injectable"},i=void 0,c={unversionedId:"api/injection/injectable-decorator",id:"api/injection/injectable-decorator",title:"injectable",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/docs/api/injection/injectable-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectable-decorator",permalink:"/iocuak-docs/docs/next/api/injection/injectable-decorator",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"injectable"},sidebar:"sidebar",previous:{title:"Container API",permalink:"/iocuak-docs/docs/next/api/container"},next:{title:"inject",permalink:"/iocuak-docs/docs/next/api/injection/inject-decorator"}},s={},l=[],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,a.kt)("p",null,"The options parameter is described as follows:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Binding scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Consider ",(0,a.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5586],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var r=n(9496);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),b=a,u=d["".concat(s,".").concat(b)]||d[b]||m[b]||o;return n?r.createElement(u,i(i({ref:t},p),{},{components:n})):r.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},1510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7366),a=(n(9496),n(9613));const o={sidebar_position:1,title:"injectable"},i=void 0,c={unversionedId:"api/injection/injectable-decorator",id:"api/injection/injectable-decorator",title:"injectable",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/docs/api/injection/injectable-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectable-decorator",permalink:"/iocuak-docs/docs/next/api/injection/injectable-decorator",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"injectable"},sidebar:"sidebar",previous:{title:"Container API",permalink:"/iocuak-docs/docs/next/api/container"},next:{title:"inject",permalink:"/iocuak-docs/docs/next/api/injection/inject-decorator"}},s={},l=[],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,a.kt)("p",null,"The options parameter is described as follows:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Binding scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Consider ",(0,a.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6d4bebe7.77f20357.js b/assets/js/6d4bebe7.dd6a902c.js similarity index 98% rename from assets/js/6d4bebe7.77f20357.js rename to assets/js/6d4bebe7.dd6a902c.js index 395c369bc..a3a5af0f3 100644 --- a/assets/js/6d4bebe7.77f20357.js +++ b/assets/js/6d4bebe7.dd6a902c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9402],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3626:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:3,title:"injectTag"},i=void 0,c={unversionedId:"api/injection/inject-tag-decorator",id:"version-0.3.1/api/injection/inject-tag-decorator",title:"injectTag",description:"This decorator targets a property or a parameter and provides the services associated to that tag.",source:"@site/versioned_docs/version-0.3.1/api/injection/inject-tag-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-tag-decorator",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"injectTag"},sidebar:"sidebar",previous:{title:"inject",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator"},next:{title:"injectFromBase",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the services associated to that tag."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectTag } from '@cuaklabs/iocuak';\n\nimport { dummyTag } from 'some/path';\n\nclass Dummy {\n @injectTag(dummyTag)\n public foo: unknown[];\n}\n\n")),(0,o.kt)("p",null,"Troperty ",(0,o.kt)("inlineCode",{parentName:"p"},"foo")," is injected with the services associated to the ",(0,o.kt)("inlineCode",{parentName:"p"},"dummyTag")," tag."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9402],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},8150:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:3,title:"injectTag"},i=void 0,c={unversionedId:"api/injection/inject-tag-decorator",id:"version-0.3.1/api/injection/inject-tag-decorator",title:"injectTag",description:"This decorator targets a property or a parameter and provides the services associated to that tag.",source:"@site/versioned_docs/version-0.3.1/api/injection/inject-tag-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-tag-decorator",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"injectTag"},sidebar:"sidebar",previous:{title:"inject",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator"},next:{title:"injectFromBase",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the services associated to that tag."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectTag } from '@cuaklabs/iocuak';\n\nimport { dummyTag } from 'some/path';\n\nclass Dummy {\n @injectTag(dummyTag)\n public foo: unknown[];\n}\n\n")),(0,o.kt)("p",null,"Troperty ",(0,o.kt)("inlineCode",{parentName:"p"},"foo")," is injected with the services associated to the ",(0,o.kt)("inlineCode",{parentName:"p"},"dummyTag")," tag."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/70a4eefc.1c4e1baa.js b/assets/js/70a4eefc.9c4a2f45.js similarity index 98% rename from assets/js/70a4eefc.1c4e1baa.js rename to assets/js/70a4eefc.9c4a2f45.js index 1947ac382..4aa8f80a7 100644 --- a/assets/js/70a4eefc.1c4e1baa.js +++ b/assets/js/70a4eefc.9c4a2f45.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7722],{9613:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>y});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function d(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=p(a),u=r,y=l["".concat(c,".").concat(u)]||l[u]||m[u]||i;return a?n.createElement(y,o(o({ref:t},s),{},{components:a})):n.createElement(y,o({ref:t},s))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[l]="string"==typeof e?e:r,o[1]=d;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},1365:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=a(7366),r=(a(9496),a(9613));const i={sidebar_position:2,title:"Metadata provider"},o=void 0,d={unversionedId:"api/metadata/metadata-provider",id:"api/metadata/metadata-provider",title:"Metadata provider",description:"The MetadataProvider class is provided to easily extract metadata of a given type",source:"@site/docs/api/metadata/metadata-provider.md",sourceDirName:"api/metadata",slug:"/api/metadata/metadata-provider",permalink:"/iocuak-docs/docs/next/api/metadata/metadata-provider",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Metadata provider"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/next/api/metadata/introduction"}},c={},p=[{value:"<code>getBindingMetadata(type)</code>",id:"getbindingmetadatatype",level:2},{value:"<code>getClassMetadata(type)</code>",id:"getclassmetadatatype",level:2}],s={toc:p},l="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(l,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"MetadataProvider")," class is provided to easily extract metadata of a given type"),(0,r.kt)("h2",{id:"getbindingmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getBindingMetadata(type)")),(0,r.kt)("p",null,"Provides binding metadata associated to that type."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values (bound by ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.bindToValue()"),") do not have metadata directly associated. Those bindings can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.getAllBindings()"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);\n")),(0,r.kt)("h2",{id:"getclassmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getClassMetadata(type)")),(0,r.kt)("p",null,"Provides class metadata associated to that type."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[7722],{9613:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>y});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function d(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=p(a),u=r,y=l["".concat(c,".").concat(u)]||l[u]||m[u]||i;return a?n.createElement(y,o(o({ref:t},s),{},{components:a})):n.createElement(y,o({ref:t},s))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[l]="string"==typeof e?e:r,o[1]=d;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},3604:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=a(7366),r=(a(9496),a(9613));const i={sidebar_position:2,title:"Metadata provider"},o=void 0,d={unversionedId:"api/metadata/metadata-provider",id:"api/metadata/metadata-provider",title:"Metadata provider",description:"The MetadataProvider class is provided to easily extract metadata of a given type",source:"@site/docs/api/metadata/metadata-provider.md",sourceDirName:"api/metadata",slug:"/api/metadata/metadata-provider",permalink:"/iocuak-docs/docs/next/api/metadata/metadata-provider",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Metadata provider"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/next/api/metadata/introduction"}},c={},p=[{value:"<code>getBindingMetadata(type)</code>",id:"getbindingmetadatatype",level:2},{value:"<code>getClassMetadata(type)</code>",id:"getclassmetadatatype",level:2}],s={toc:p},l="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(l,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"MetadataProvider")," class is provided to easily extract metadata of a given type"),(0,r.kt)("h2",{id:"getbindingmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getBindingMetadata(type)")),(0,r.kt)("p",null,"Provides binding metadata associated to that type."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values (bound by ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.bindToValue()"),") do not have metadata directly associated. Those bindings can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.getAllBindings()"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);\n")),(0,r.kt)("h2",{id:"getclassmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getClassMetadata(type)")),(0,r.kt)("p",null,"Provides class metadata associated to that type."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7733bc07.669052b1.js b/assets/js/7733bc07.ee4ab91a.js similarity index 98% rename from assets/js/7733bc07.669052b1.js rename to assets/js/7733bc07.ee4ab91a.js index 572be5448..8b0dd0e88 100644 --- a/assets/js/7733bc07.669052b1.js +++ b/assets/js/7733bc07.ee4ab91a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2298],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},1074:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:2,title:"inject"},a=void 0,c={unversionedId:"api/injection/inject-decorator",id:"api/injection/inject-decorator",title:"inject",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/docs/api/injection/inject-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-decorator",permalink:"/iocuak-docs/docs/next/api/injection/inject-decorator",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"inject"},sidebar:"sidebar",previous:{title:"injectable",permalink:"/iocuak-docs/docs/next/api/injection/injectable-decorator"},next:{title:"injectTag",permalink:"/iocuak-docs/docs/next/api/injection/inject-tag-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2298],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5637:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:2,title:"inject"},a=void 0,c={unversionedId:"api/injection/inject-decorator",id:"api/injection/inject-decorator",title:"inject",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/docs/api/injection/inject-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-decorator",permalink:"/iocuak-docs/docs/next/api/injection/inject-decorator",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"inject"},sidebar:"sidebar",previous:{title:"injectable",permalink:"/iocuak-docs/docs/next/api/injection/injectable-decorator"},next:{title:"injectTag",permalink:"/iocuak-docs/docs/next/api/injection/inject-tag-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/78ce0ec1.2c10f28f.js b/assets/js/78ce0ec1.44308816.js similarity index 98% rename from assets/js/78ce0ec1.2c10f28f.js rename to assets/js/78ce0ec1.44308816.js index b1ec88f26..77ea40c76 100644 --- a/assets/js/78ce0ec1.2c10f28f.js +++ b/assets/js/78ce0ec1.44308816.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4651],{9613:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),d=l(r),f=o,b=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(b,c(c({ref:t},u),{},{components:r})):n.createElement(b,c({ref:t},u))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,c[1]=a;for(var l=2;l<i;l++)c[l]=r[l];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},4188:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1,title:"Introduction"},c=void 0,a={unversionedId:"tutorial/the-container-object/introduction",id:"version-0.3.1/tutorial/the-container-object/introduction",title:"Introduction",description:"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.",source:"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/introduction.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"The inject decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator"},next:{title:"Binding a service",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service"}},s={},l=[],u={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4651],{9613:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),d=l(r),f=o,b=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(b,c(c({ref:t},u),{},{components:r})):n.createElement(b,c({ref:t},u))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,c[1]=a;for(var l=2;l<i;l++)c[l]=r[l];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},7040:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1,title:"Introduction"},c=void 0,a={unversionedId:"tutorial/the-container-object/introduction",id:"version-0.3.1/tutorial/the-container-object/introduction",title:"Introduction",description:"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.",source:"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/introduction.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"The inject decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator"},next:{title:"Binding a service",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service"}},s={},l=[],u={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7995d4bf.92195ecc.js b/assets/js/7995d4bf.4b946712.js similarity index 50% rename from assets/js/7995d4bf.92195ecc.js rename to assets/js/7995d4bf.4b946712.js index e8682977a..d9d857a4e 100644 --- a/assets/js/7995d4bf.92195ecc.js +++ b/assets/js/7995d4bf.4b946712.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4678],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},b=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(t),b=o,m=d["".concat(l,".").concat(b)]||d[b]||p[b]||i;return t?r.createElement(m,a(a({ref:n},s),{},{components:t})):r.createElement(m,a({ref:n},s))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}b.displayName="MDXCreateElement"},894:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Binding a service"},a=void 0,c={unversionedId:"tutorial/the-container-object/binding-a-service",id:"tutorial/the-container-object/binding-a-service",title:"Binding a service",description:"Services can be easily bound to the container calling it directly.",source:"@site/docs/tutorial/the-container-object/binding-a-service.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/binding-a-service",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Binding a service"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/introduction"},next:{title:"Creating instances",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances"}},l={},u=[],s={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Services can be easily bound to the container calling it directly."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container } from '@cuaklabs/iocuak';\n\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\n")),(0,o.kt)("p",null,"Services can also be bound through a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModule"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4678],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},b=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(t),b=o,m=d["".concat(l,".").concat(b)]||d[b]||p[b]||i;return t?r.createElement(m,a(a({ref:n},s),{},{components:t})):r.createElement(m,a({ref:n},s))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}b.displayName="MDXCreateElement"},2888:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Binding a service"},a=void 0,c={unversionedId:"tutorial/the-container-object/binding-a-service",id:"tutorial/the-container-object/binding-a-service",title:"Binding a service",description:"Services can be easily bound to the container calling it directly.",source:"@site/docs/tutorial/the-container-object/binding-a-service.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/binding-a-service",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Binding a service"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/introduction"},next:{title:"Creating instances",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances"}},l={},u=[],s={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Services can be easily bound to the container calling it directly."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container } from '@cuaklabs/iocuak';\n\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\n")),(0,o.kt)("p",null,"Services can also be bound through a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModule"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/79b7c907.aea81bdc.js b/assets/js/79b7c907.b6d9706d.js similarity index 98% rename from assets/js/79b7c907.aea81bdc.js rename to assets/js/79b7c907.b6d9706d.js index f0cf95a26..8c24cd730 100644 --- a/assets/js/79b7c907.aea81bdc.js +++ b/assets/js/79b7c907.b6d9706d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2419],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(9496);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(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?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),m=a,f=u["".concat(s,".").concat(m)]||u[m]||l[m]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var d=2;d<o;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},1997:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var n=r(7366),a=(r(9496),r(9613));const o={sidebar_position:1,title:"Introduction"},i=void 0,c={unversionedId:"api/metadata/introduction",id:"api/metadata/introduction",title:"Introduction",description:"This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.",source:"@site/docs/api/metadata/introduction.md",sourceDirName:"api/metadata",slug:"/api/metadata/introduction",permalink:"/iocuak-docs/docs/next/api/metadata/introduction",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"injectFromBase",permalink:"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator"},next:{title:"Metadata provider",permalink:"/iocuak-docs/docs/next/api/metadata/metadata-provider"}},s={},d=[],p={toc:d},u="wrapper";function l(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This library uses ",(0,a.kt)("inlineCode",{parentName:"p"},"metadata")," to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between ",(0,a.kt)("inlineCode",{parentName:"p"},"iocuak")," and other IoC libraries."))}l.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2419],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(9496);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(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?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),m=a,f=u["".concat(s,".").concat(m)]||u[m]||l[m]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var d=2;d<o;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},7945:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var n=r(7366),a=(r(9496),r(9613));const o={sidebar_position:1,title:"Introduction"},i=void 0,c={unversionedId:"api/metadata/introduction",id:"api/metadata/introduction",title:"Introduction",description:"This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.",source:"@site/docs/api/metadata/introduction.md",sourceDirName:"api/metadata",slug:"/api/metadata/introduction",permalink:"/iocuak-docs/docs/next/api/metadata/introduction",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"injectFromBase",permalink:"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator"},next:{title:"Metadata provider",permalink:"/iocuak-docs/docs/next/api/metadata/metadata-provider"}},s={},d=[],p={toc:d},u="wrapper";function l(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This library uses ",(0,a.kt)("inlineCode",{parentName:"p"},"metadata")," to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between ",(0,a.kt)("inlineCode",{parentName:"p"},"iocuak")," and other IoC libraries."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/79e19905.7c3935c9.js b/assets/js/79e19905.4d1ccaaf.js similarity index 98% rename from assets/js/79e19905.7c3935c9.js rename to assets/js/79e19905.4d1ccaaf.js index 2c163b0a6..f47a31daa 100644 --- a/assets/js/79e19905.7c3935c9.js +++ b/assets/js/79e19905.4d1ccaaf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[513],{9613:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5517:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:3,title:"Creating instances"},i=void 0,c={unversionedId:"tutorial/the-container-object/creating-instances",id:"version-0.5.0/tutorial/the-container-object/creating-instances",title:"Creating instances",description:"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated",source:"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/creating-instances.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/creating-instances",permalink:"/iocuak-docs/docs/tutorial/the-container-object/creating-instances",draft:!1,tags:[],version:"0.5.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Creating instances"},sidebar:"sidebar",previous:{title:"Binding a service",permalink:"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/container-modules/introduction"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container, injectable } from '@cuaklabs/iocuak';\n\n@injectable()\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\nconst dummyInstance: Dummy = container.get(Dummy);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[513],{9613:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},9738:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:3,title:"Creating instances"},i=void 0,c={unversionedId:"tutorial/the-container-object/creating-instances",id:"version-0.5.0/tutorial/the-container-object/creating-instances",title:"Creating instances",description:"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated",source:"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/creating-instances.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/creating-instances",permalink:"/iocuak-docs/docs/tutorial/the-container-object/creating-instances",draft:!1,tags:[],version:"0.5.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Creating instances"},sidebar:"sidebar",previous:{title:"Binding a service",permalink:"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/container-modules/introduction"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container, injectable } from '@cuaklabs/iocuak';\n\n@injectable()\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\nconst dummyInstance: Dummy = container.get(Dummy);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7bd4b37f.a9544f04.js b/assets/js/7bd4b37f.fe91cb68.js similarity index 98% rename from assets/js/7bd4b37f.a9544f04.js rename to assets/js/7bd4b37f.fe91cb68.js index 41ed7c7ae..cae36dc46 100644 --- a/assets/js/7bd4b37f.a9544f04.js +++ b/assets/js/7bd4b37f.fe91cb68.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9921],{9613:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),b=o,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},2215:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:1,title:"The injectable decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/injectable-decorator",id:"version-0.5.0/tutorial/decorating-classes/injectable-decorator",title:"The injectable decorator",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.5.0/tutorial/decorating-classes/injectable-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/injectable-decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"The injectable decorator"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/introduction"},next:{title:"The inject decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator"}},s={},l=[],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst barSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on singleton scope. Its service id is the barSymbol symbol\n */\n@injectable({\n id: barSymbol,\n scope: BindingScope.singleton,\n})\nclass Bar {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Consider ",(0,o.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9921],{9613:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),b=o,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},8751:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:1,title:"The injectable decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/injectable-decorator",id:"version-0.5.0/tutorial/decorating-classes/injectable-decorator",title:"The injectable decorator",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.5.0/tutorial/decorating-classes/injectable-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/injectable-decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"The injectable decorator"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/introduction"},next:{title:"The inject decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator"}},s={},l=[],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst barSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on singleton scope. Its service id is the barSymbol symbol\n */\n@injectable({\n id: barSymbol,\n scope: BindingScope.singleton,\n})\nclass Bar {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Consider ",(0,o.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7be4df85.f8eb8e84.js b/assets/js/7be4df85.ba2f9f73.js similarity index 98% rename from assets/js/7be4df85.f8eb8e84.js rename to assets/js/7be4df85.ba2f9f73.js index cba6462dc..41c9c2946 100644 --- a/assets/js/7be4df85.f8eb8e84.js +++ b/assets/js/7be4df85.ba2f9f73.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9688],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(s,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},6552:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1},a="Introduction",c={unversionedId:"tutorial/introduction",id:"version-0.5.0/tutorial/introduction",title:"Introduction",description:"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.",source:"@site/versioned_docs/version-0.5.0/tutorial/introduction.md",sourceDirName:"tutorial",slug:"/tutorial/introduction",permalink:"/iocuak-docs/docs/tutorial/introduction",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",next:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator"}},s={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques."),(0,o.kt)("p",null,"This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9688],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(s,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},1261:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1},a="Introduction",c={unversionedId:"tutorial/introduction",id:"version-0.5.0/tutorial/introduction",title:"Introduction",description:"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.",source:"@site/versioned_docs/version-0.5.0/tutorial/introduction.md",sourceDirName:"tutorial",slug:"/tutorial/introduction",permalink:"/iocuak-docs/docs/tutorial/introduction",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",next:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator"}},s={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques."),(0,o.kt)("p",null,"This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7d9bb284.8332684f.js b/assets/js/7d9bb284.8332684f.js new file mode 100644 index 000000000..0825d2fa2 --- /dev/null +++ b/assets/js/7d9bb284.8332684f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4074],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var a=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=l(t),p=o,f=u["".concat(c,".").concat(p)]||u[p]||m[p]||r;return t?a.createElement(f,i(i({ref:n},s),{},{components:t})):a.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=p;var d={};for(var c in n)hasOwnProperty.call(n,c)&&(d[c]=n[c]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var l=2;l<r;l++)i[l]=t[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},477:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var a=t(7366),o=(t(9496),t(9613));const r={sidebar_position:2,title:"Loading modules from metadata"},i=void 0,d={unversionedId:"tutorial/container-modules/loading-modules-from-metadata",id:"version-0.4.0/tutorial/container-modules/loading-modules-from-metadata",title:"Loading modules from metadata",description:"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.",source:"@site/versioned_docs/version-0.4.0/tutorial/container-modules/loading-modules-from-metadata.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/loading-modules-from-metadata",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Loading modules from metadata"},sidebar:"sidebar",previous:{title:"Creating modules",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules"},next:{title:"Binding",permalink:"/iocuak-docs/docs/0.4.0/concepts/binding"}},c={},l=[{value:"Container Module Factory Metatada",id:"container-module-factory-metatada",level:3},{value:"Container Module Class Metadata",id:"container-module-class-metadata",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database."),(0,o.kt)("p",null,"Container module metadata is provided for those purposes."),(0,o.kt)("h3",{id:"container-module-factory-metatada"},"Container Module Factory Metatada"),(0,o.kt)("p",null,"This approach uses a factory to create the module. This metadata can receive an ",(0,o.kt)("inlineCode",{parentName:"p"},"injects")," property to receive injected dependencies."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module."),(0,o.kt)("h3",{id:"container-module-class-metadata"},"Container Module Class Metadata"),(0,o.kt)("p",null,"This approach receives a class which is used to create the module."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModule,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\n@injectable()\nclass MyContainerModule implements ContainerModule {\n\n constructor(\n @inject(Dependency)\n public readonly someServiceDependency: Dependency,\n ) {}\n\n public load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n}\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n imports: [someContainerModuleMetadataDependency],\n module: MyContainerModule,\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports."),(0,o.kt)("p",null,"This approach is highly inspired on ",(0,o.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/fundamentals/dynamic-modules"},"NestJs modules"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7d9bb284.cf880ece.js b/assets/js/7d9bb284.cf880ece.js deleted file mode 100644 index 1fb23bf9d..000000000 --- a/assets/js/7d9bb284.cf880ece.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[4074],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var a=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=l(t),p=o,f=u["".concat(c,".").concat(p)]||u[p]||m[p]||r;return t?a.createElement(f,i(i({ref:n},s),{},{components:t})):a.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=p;var d={};for(var c in n)hasOwnProperty.call(n,c)&&(d[c]=n[c]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var l=2;l<r;l++)i[l]=t[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},1202:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var a=t(7366),o=(t(9496),t(9613));const r={sidebar_position:2,title:"Loading modules from metadata"},i=void 0,d={unversionedId:"tutorial/container-modules/loading-modules-from-metadata",id:"version-0.4.0/tutorial/container-modules/loading-modules-from-metadata",title:"Loading modules from metadata",description:"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.",source:"@site/versioned_docs/version-0.4.0/tutorial/container-modules/loading-modules-from-metadata.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/loading-modules-from-metadata",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Loading modules from metadata"},sidebar:"sidebar",previous:{title:"Creating modules",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules"},next:{title:"Binding",permalink:"/iocuak-docs/docs/0.4.0/concepts/binding"}},c={},l=[{value:"Container Module Factory Metatada",id:"container-module-factory-metatada",level:3},{value:"Container Module Class Metadata",id:"container-module-class-metadata",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database."),(0,o.kt)("p",null,"Container module metadata is provided for those purposes."),(0,o.kt)("h3",{id:"container-module-factory-metatada"},"Container Module Factory Metatada"),(0,o.kt)("p",null,"This approach uses a factory to create the module. This metadata can receive an ",(0,o.kt)("inlineCode",{parentName:"p"},"injects")," property to receive injected dependencies."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module."),(0,o.kt)("h3",{id:"container-module-class-metadata"},"Container Module Class Metadata"),(0,o.kt)("p",null,"This approach receives a class which is used to create the module."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModule,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\n@injectable()\nclass MyContainerModule implements ContainerModule {\n\n constructor(\n @inject(Dependency)\n public readonly someServiceDependency: Dependency,\n ) {}\n\n public load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n}\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n imports: [someContainerModuleMetadataDependency],\n module: MyContainerModule,\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports."),(0,o.kt)("p",null,"This approach is highly inspired on ",(0,o.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/fundamentals/dynamic-modules"},"NestJs modules"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7e923665.1758c6ad.js b/assets/js/7e923665.b46e2686.js similarity index 99% rename from assets/js/7e923665.1758c6ad.js rename to assets/js/7e923665.b46e2686.js index 6e5e9aa68..83c9174ac 100644 --- a/assets/js/7e923665.1758c6ad.js +++ b/assets/js/7e923665.b46e2686.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2012],{9613:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>b});var a=n(9496);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?a.createElement(b,o(o({ref:t},s),{},{components:n})):a.createElement(b,o({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:r,o[1]=d;for(var c=2;c<i;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5330:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=n(7366),r=(n(9496),n(9613));const i={sidebar_position:1,title:"Container API"},o=void 0,d={unversionedId:"api/container",id:"api/container",title:"Container API",description:"bind(type, options)",source:"@site/docs/api/container.md",sourceDirName:"api",slug:"/api/container",permalink:"/iocuak-docs/docs/next/api/container",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Container API"},sidebar:"sidebar",previous:{title:"Container module metadata",permalink:"/iocuak-docs/docs/next/concepts/container-module-metadata"},next:{title:"injectable",permalink:"/iocuak-docs/docs/next/api/injection/injectable-decorator"}},l={},c=[{value:"<code>bind(type, options)</code>",id:"bindtype-options",level:3},{value:"<code>bindToValue(options)</code>",id:"bindtovalueoptions",level:3},{value:"<code>get(serviceId)</code>",id:"getserviceid",level:3},{value:"<code>getByTag(tag)</code>",id:"getbytagtag",level:3},{value:"<code>getAllBindinds()</code>",id:"getallbindinds",level:3},{value:"<code>load(containerModule)</code>",id:"loadcontainermodule",level:3},{value:"<code>loadMetadata(containerModuleMetadata)</code>",id:"loadmetadatacontainermodulemetadata",level:3},{value:"<code>unbind(serviceId)</code>",id:"unbindserviceid",level:3}],s={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"bindtype-options"},(0,r.kt)("inlineCode",{parentName:"h3"},"bind(type, options)")),(0,r.kt)("p",null,"Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Binding scope to apply"),(0,r.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,r.kt)("h3",{id:"bindtovalueoptions"},(0,r.kt)("inlineCode",{parentName:"h3"},"bindToValue(options)")),(0,r.kt)("p",null,"Binds a value. The options parameter is described as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Value to bind"),(0,r.kt)("td",{parentName:"tr",align:"center"},"unknown")))),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values are always bound in singleton scope")),(0,r.kt)("h3",{id:"getserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"get(serviceId)")),(0,r.kt)("p",null,"Returns a service by its id. If necessary, the service is instantiated."),(0,r.kt)("p",null,"Consider the ",(0,r.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/next/concepts/binding"},"binding")," page as reference to know more about instance details."),(0,r.kt)("h3",{id:"getbytagtag"},(0,r.kt)("inlineCode",{parentName:"h3"},"getByTag(tag)")),(0,r.kt)("p",null,"Returns all the services associated to a tag. If necessary, services are instantiated."),(0,r.kt)("h3",{id:"getallbindinds"},(0,r.kt)("inlineCode",{parentName:"h3"},"getAllBindinds()")),(0,r.kt)("p",null,"Returns all the bindings registered in the container."),(0,r.kt)("h3",{id:"loadcontainermodule"},(0,r.kt)("inlineCode",{parentName:"h3"},"load(containerModule)")),(0,r.kt)("p",null,"Loads a container module."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,r.kt)("h3",{id:"loadmetadatacontainermodulemetadata"},(0,r.kt)("inlineCode",{parentName:"h3"},"loadMetadata(containerModuleMetadata)")),(0,r.kt)("p",null,"Loads container module metadata"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,r.kt)("h3",{id:"unbindserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"unbind(serviceId)")),(0,r.kt)("p",null,"Unbinds a bound service by its id."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[2012],{9613:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>b});var a=n(9496);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?a.createElement(b,o(o({ref:t},s),{},{components:n})):a.createElement(b,o({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:r,o[1]=d;for(var c=2;c<i;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},2694:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=n(7366),r=(n(9496),n(9613));const i={sidebar_position:1,title:"Container API"},o=void 0,d={unversionedId:"api/container",id:"api/container",title:"Container API",description:"bind(type, options)",source:"@site/docs/api/container.md",sourceDirName:"api",slug:"/api/container",permalink:"/iocuak-docs/docs/next/api/container",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Container API"},sidebar:"sidebar",previous:{title:"Container module metadata",permalink:"/iocuak-docs/docs/next/concepts/container-module-metadata"},next:{title:"injectable",permalink:"/iocuak-docs/docs/next/api/injection/injectable-decorator"}},l={},c=[{value:"<code>bind(type, options)</code>",id:"bindtype-options",level:3},{value:"<code>bindToValue(options)</code>",id:"bindtovalueoptions",level:3},{value:"<code>get(serviceId)</code>",id:"getserviceid",level:3},{value:"<code>getByTag(tag)</code>",id:"getbytagtag",level:3},{value:"<code>getAllBindinds()</code>",id:"getallbindinds",level:3},{value:"<code>load(containerModule)</code>",id:"loadcontainermodule",level:3},{value:"<code>loadMetadata(containerModuleMetadata)</code>",id:"loadmetadatacontainermodulemetadata",level:3},{value:"<code>unbind(serviceId)</code>",id:"unbindserviceid",level:3}],s={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"bindtype-options"},(0,r.kt)("inlineCode",{parentName:"h3"},"bind(type, options)")),(0,r.kt)("p",null,"Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Binding scope to apply"),(0,r.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,r.kt)("h3",{id:"bindtovalueoptions"},(0,r.kt)("inlineCode",{parentName:"h3"},"bindToValue(options)")),(0,r.kt)("p",null,"Binds a value. The options parameter is described as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Value to bind"),(0,r.kt)("td",{parentName:"tr",align:"center"},"unknown")))),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values are always bound in singleton scope")),(0,r.kt)("h3",{id:"getserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"get(serviceId)")),(0,r.kt)("p",null,"Returns a service by its id. If necessary, the service is instantiated."),(0,r.kt)("p",null,"Consider the ",(0,r.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/next/concepts/binding"},"binding")," page as reference to know more about instance details."),(0,r.kt)("h3",{id:"getbytagtag"},(0,r.kt)("inlineCode",{parentName:"h3"},"getByTag(tag)")),(0,r.kt)("p",null,"Returns all the services associated to a tag. If necessary, services are instantiated."),(0,r.kt)("h3",{id:"getallbindinds"},(0,r.kt)("inlineCode",{parentName:"h3"},"getAllBindinds()")),(0,r.kt)("p",null,"Returns all the bindings registered in the container."),(0,r.kt)("h3",{id:"loadcontainermodule"},(0,r.kt)("inlineCode",{parentName:"h3"},"load(containerModule)")),(0,r.kt)("p",null,"Loads a container module."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,r.kt)("h3",{id:"loadmetadatacontainermodulemetadata"},(0,r.kt)("inlineCode",{parentName:"h3"},"loadMetadata(containerModuleMetadata)")),(0,r.kt)("p",null,"Loads container module metadata"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,r.kt)("h3",{id:"unbindserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"unbind(serviceId)")),(0,r.kt)("p",null,"Unbinds a bound service by its id."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8044f45a.05c36f86.js b/assets/js/8044f45a.434da5f2.js similarity index 98% rename from assets/js/8044f45a.05c36f86.js rename to assets/js/8044f45a.434da5f2.js index 1ee558586..7bc80e080 100644 --- a/assets/js/8044f45a.05c36f86.js +++ b/assets/js/8044f45a.434da5f2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[581],{9613:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},d=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=o,f=s["".concat(l,".").concat(m)]||s[m]||p[m]||i;return t?r.createElement(f,a(a({ref:n},d),{},{components:t})):r.createElement(f,a({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=m;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},4951:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Creating modules"},a=void 0,c={unversionedId:"tutorial/container-modules/creating-modules",id:"version-0.4.0/tutorial/container-modules/creating-modules",title:"Creating modules",description:"A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.",source:"@site/versioned_docs/version-0.4.0/tutorial/container-modules/creating-modules.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/creating-modules",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Creating modules"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction"},next:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata"}},l={},u=[],d={toc:u},s="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(s,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A container module declares a ",(0,o.kt)("inlineCode",{parentName:"p"},"load")," method receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleBindingService"),". This service allows us to bind types and values."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,o.kt)("p",null,"This way different service bindings can be grouped."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[581],{9613:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},d=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=o,f=s["".concat(l,".").concat(m)]||s[m]||p[m]||i;return t?r.createElement(f,a(a({ref:n},d),{},{components:t})):r.createElement(f,a({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=m;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},6188:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Creating modules"},a=void 0,c={unversionedId:"tutorial/container-modules/creating-modules",id:"version-0.4.0/tutorial/container-modules/creating-modules",title:"Creating modules",description:"A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.",source:"@site/versioned_docs/version-0.4.0/tutorial/container-modules/creating-modules.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/creating-modules",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Creating modules"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction"},next:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata"}},l={},u=[],d={toc:u},s="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(s,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A container module declares a ",(0,o.kt)("inlineCode",{parentName:"p"},"load")," method receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleBindingService"),". This service allows us to bind types and values."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,o.kt)("p",null,"This way different service bindings can be grouped."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/806df6bd.23472c6d.js b/assets/js/806df6bd.53a7b8f2.js similarity index 51% rename from assets/js/806df6bd.23472c6d.js rename to assets/js/806df6bd.53a7b8f2.js index a817b0624..a77d8515f 100644 --- a/assets/js/806df6bd.23472c6d.js +++ b/assets/js/806df6bd.53a7b8f2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1899],{9613:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},d=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=o,f=s["".concat(l,".").concat(m)]||s[m]||p[m]||i;return t?r.createElement(f,a(a({ref:n},d),{},{components:t})):r.createElement(f,a({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=m;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},2738:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Creating modules"},a=void 0,c={unversionedId:"tutorial/container-modules/creating-modules",id:"tutorial/container-modules/creating-modules",title:"Creating modules",description:"A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.",source:"@site/docs/tutorial/container-modules/creating-modules.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/creating-modules",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Creating modules"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/introduction"},next:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata"}},l={},u=[],d={toc:u},s="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(s,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A container module declares a ",(0,o.kt)("inlineCode",{parentName:"p"},"load")," method receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleBindingService"),". This service allows us to bind types and values."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,o.kt)("p",null,"This way different service bindings can be grouped."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1899],{9613:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},d=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=o,f=s["".concat(l,".").concat(m)]||s[m]||p[m]||i;return t?r.createElement(f,a(a({ref:n},d),{},{components:t})):r.createElement(f,a({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=m;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},278:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Creating modules"},a=void 0,c={unversionedId:"tutorial/container-modules/creating-modules",id:"tutorial/container-modules/creating-modules",title:"Creating modules",description:"A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.",source:"@site/docs/tutorial/container-modules/creating-modules.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/creating-modules",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Creating modules"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/introduction"},next:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata"}},l={},u=[],d={toc:u},s="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(s,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A container module declares a ",(0,o.kt)("inlineCode",{parentName:"p"},"load")," method receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleBindingService"),". This service allows us to bind types and values."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,o.kt)("p",null,"This way different service bindings can be grouped."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8200b41e.8fda5284.js b/assets/js/8200b41e.38c61b05.js similarity index 98% rename from assets/js/8200b41e.8fda5284.js rename to assets/js/8200b41e.38c61b05.js index 05283593b..e270ab40b 100644 --- a/assets/js/8200b41e.8fda5284.js +++ b/assets/js/8200b41e.38c61b05.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9513],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||l[m]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3723:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:1,title:"Introduction"},i=void 0,c={unversionedId:"api/metadata/introduction",id:"version-0.3.1/api/metadata/introduction",title:"Introduction",description:"This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.",source:"@site/versioned_docs/version-0.3.1/api/metadata/introduction.md",sourceDirName:"api/metadata",slug:"/api/metadata/introduction",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/introduction",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"injectFromBase",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator"},next:{title:"Metadata provider",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider"}},s={},d=[],p={toc:d},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This library uses ",(0,o.kt)("inlineCode",{parentName:"p"},"metadata")," to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between ",(0,o.kt)("inlineCode",{parentName:"p"},"iocuak")," and other IoC libraries."))}l.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9513],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}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){o(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 c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||l[m]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},7016:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7366),o=(r(9496),r(9613));const a={sidebar_position:1,title:"Introduction"},i=void 0,c={unversionedId:"api/metadata/introduction",id:"version-0.3.1/api/metadata/introduction",title:"Introduction",description:"This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.",source:"@site/versioned_docs/version-0.3.1/api/metadata/introduction.md",sourceDirName:"api/metadata",slug:"/api/metadata/introduction",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/introduction",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"injectFromBase",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator"},next:{title:"Metadata provider",permalink:"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider"}},s={},d=[],p={toc:d},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This library uses ",(0,o.kt)("inlineCode",{parentName:"p"},"metadata")," to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between ",(0,o.kt)("inlineCode",{parentName:"p"},"iocuak")," and other IoC libraries."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8767fd65.8b15a35b.js b/assets/js/8767fd65.cd575103.js similarity index 98% rename from assets/js/8767fd65.8b15a35b.js rename to assets/js/8767fd65.cd575103.js index 5ea8e2bbd..0497826fa 100644 --- a/assets/js/8767fd65.8b15a35b.js +++ b/assets/js/8767fd65.cd575103.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[563],{9613:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),d=l(r),f=o,b=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(b,c(c({ref:t},u),{},{components:r})):n.createElement(b,c({ref:t},u))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,c[1]=a;for(var l=2;l<i;l++)c[l]=r[l];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},7326:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1,title:"Introduction"},c=void 0,a={unversionedId:"tutorial/the-container-object/introduction",id:"version-0.5.0/tutorial/the-container-object/introduction",title:"Introduction",description:"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.",source:"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/introduction.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/introduction",permalink:"/iocuak-docs/docs/tutorial/the-container-object/introduction",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"The inject decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator"},next:{title:"Binding a service",permalink:"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service"}},s={},l=[],u={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[563],{9613:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),d=l(r),f=o,b=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(b,c(c({ref:t},u),{},{components:r})):n.createElement(b,c({ref:t},u))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,c[1]=a;for(var l=2;l<i;l++)c[l]=r[l];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},5485:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1,title:"Introduction"},c=void 0,a={unversionedId:"tutorial/the-container-object/introduction",id:"version-0.5.0/tutorial/the-container-object/introduction",title:"Introduction",description:"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.",source:"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/introduction.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/introduction",permalink:"/iocuak-docs/docs/tutorial/the-container-object/introduction",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"The inject decorator",permalink:"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator"},next:{title:"Binding a service",permalink:"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service"}},s={},l=[],u={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/87f77671.7d3b71ca.js b/assets/js/87f77671.7d3b71ca.js new file mode 100644 index 000000000..66c05211e --- /dev/null +++ b/assets/js/87f77671.7d3b71ca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5850],{9613:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),o=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=o(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=o(a),u=r,k=d["".concat(c,".").concat(u)]||d[u]||m[u]||s;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,l=new Array(s);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var o=2;o<s;o++)l[o]=a[o];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},668:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>o});var n=a(7366),r=(a(9496),a(9613));const s={sidebar_position:2,title:"Class metadata"},l=void 0,i={unversionedId:"concepts/class-metadata",id:"version-0.4.0/concepts/class-metadata",title:"Class metadata",description:"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.",source:"@site/versioned_docs/version-0.4.0/concepts/class-metadata.md",sourceDirName:"concepts",slug:"/concepts/class-metadata",permalink:"/iocuak-docs/docs/0.4.0/concepts/class-metadata",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Class metadata"},sidebar:"sidebar",previous:{title:"Binding",permalink:"/iocuak-docs/docs/0.4.0/concepts/binding"},next:{title:"Container API",permalink:"/iocuak-docs/docs/0.4.0/api/container"}},c={},o=[{value:"ClassElementMetadata",id:"classelementmetadata",level:2},{value:"ClassElementServiceIdMetadata",id:"classelementserviceidmetadata",level:3},{value:"ClassElementTagMetadataApi",id:"classelementtagmetadataapi",level:3}],p={toc:o},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"constructorArguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Constructor arguments metadata"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadata")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"properties"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Properties metadata."),(0,r.kt)("td",{parentName:"tr",align:"center"},"Map<string ","|"," symbol, ClassElementMetadata>")))),(0,r.kt)("h2",{id:"classelementmetadata"},"ClassElementMetadata"),(0,r.kt)("p",null,"Class element metadata can be of two different kinds:"),(0,r.kt)("h3",{id:"classelementserviceidmetadata"},"ClassElementServiceIdMetadata"),(0,r.kt)("p",null,"Represents a service dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.serviceId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,r.kt)("h3",{id:"classelementtagmetadataapi"},"ClassElementTagMetadataApi"),(0,r.kt)("p",null,"Represents services associated to a tag dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.tag")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tag associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/87f77671.e7cb66cd.js b/assets/js/87f77671.e7cb66cd.js deleted file mode 100644 index 2eb911d88..000000000 --- a/assets/js/87f77671.e7cb66cd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5850],{9613:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),o=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=o(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=o(a),u=r,k=d["".concat(c,".").concat(u)]||d[u]||m[u]||s;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,l=new Array(s);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var o=2;o<s;o++)l[o]=a[o];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},1359:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>o});var n=a(7366),r=(a(9496),a(9613));const s={sidebar_position:2,title:"Class metadata"},l=void 0,i={unversionedId:"concepts/class-metadata",id:"version-0.4.0/concepts/class-metadata",title:"Class metadata",description:"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.",source:"@site/versioned_docs/version-0.4.0/concepts/class-metadata.md",sourceDirName:"concepts",slug:"/concepts/class-metadata",permalink:"/iocuak-docs/docs/0.4.0/concepts/class-metadata",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Class metadata"},sidebar:"sidebar",previous:{title:"Binding",permalink:"/iocuak-docs/docs/0.4.0/concepts/binding"},next:{title:"Container API",permalink:"/iocuak-docs/docs/0.4.0/api/container"}},c={},o=[{value:"ClassElementMetadata",id:"classelementmetadata",level:2},{value:"ClassElementServiceIdMetadata",id:"classelementserviceidmetadata",level:3},{value:"ClassElementTagMetadataApi",id:"classelementtagmetadataapi",level:3}],p={toc:o},d="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"constructorArguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Constructor arguments metadata"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadata")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"properties"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Properties metadata."),(0,r.kt)("td",{parentName:"tr",align:"center"},"Map<string ","|"," symbol, ClassElementMetadata>")))),(0,r.kt)("h2",{id:"classelementmetadata"},"ClassElementMetadata"),(0,r.kt)("p",null,"Class element metadata can be of two different kinds:"),(0,r.kt)("h3",{id:"classelementserviceidmetadata"},"ClassElementServiceIdMetadata"),(0,r.kt)("p",null,"Represents a service dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.serviceId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,r.kt)("h3",{id:"classelementtagmetadataapi"},"ClassElementTagMetadataApi"),(0,r.kt)("p",null,"Represents services associated to a tag dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.tag")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tag associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/898848d2.13cf5b3e.js b/assets/js/898848d2.0798f3b9.js similarity index 99% rename from assets/js/898848d2.13cf5b3e.js rename to assets/js/898848d2.0798f3b9.js index 870d6b8d5..968910358 100644 --- a/assets/js/898848d2.13cf5b3e.js +++ b/assets/js/898848d2.0798f3b9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5533],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>b});var a=t(9496);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){i(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,i=function(e,n){if(null==e)return{};var t,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var l=a.createContext({}),c=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},s=function(e){var n=c(e.components);return a.createElement(l.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(t),m=i,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||r;return t?a.createElement(b,o(o({ref:n},s),{},{components:t})):a.createElement(b,o({ref:n},s))}));function b(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var r=t.length,o=new Array(r);o[0]=m;var d={};for(var l in n)hasOwnProperty.call(n,l)&&(d[l]=n[l]);d.originalType=e,d[p]="string"==typeof e?e:i,o[1]=d;for(var c=2;c<r;c++)o[c]=t[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},8962:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var a=t(7366),i=(t(9496),t(9613));const r={sidebar_position:1,title:"Container API"},o=void 0,d={unversionedId:"api/container",id:"version-0.3.1/api/container",title:"Container API",description:"bind(type)",source:"@site/versioned_docs/version-0.3.1/api/container.md",sourceDirName:"api",slug:"/api/container",permalink:"/iocuak-docs/docs/0.3.1/api/container",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Container API"},sidebar:"sidebar",previous:{title:"Class metadata",permalink:"/iocuak-docs/docs/0.3.1/concepts/class-metadata"},next:{title:"injectable",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator"}},l={},c=[{value:"<code>bind(type)</code>",id:"bindtype",level:3},{value:"<code>bindToValue(options)</code>",id:"bindtovalueoptions",level:3},{value:"<code>get(serviceId)</code>",id:"getserviceid",level:3},{value:"<code>getByTag(tag)</code>",id:"getbytagtag",level:3},{value:"<code>getAllBindinds()</code>",id:"getallbindinds",level:3},{value:"<code>load(containerModule)</code>",id:"loadcontainermodule",level:3},{value:"<code>loadMetadata(containerModuleMetadata)</code>",id:"loadmetadatacontainermodulemetadata",level:3},{value:"<code>unbind(serviceId)</code>",id:"unbindserviceid",level:3}],s={toc:c},p="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(p,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h3",{id:"bindtype"},(0,i.kt)("inlineCode",{parentName:"h3"},"bind(type)")),(0,i.kt)("p",null,"Binds a type. The container takes any binding associated to that type and process it."),(0,i.kt)("h3",{id:"bindtovalueoptions"},(0,i.kt)("inlineCode",{parentName:"h3"},"bindToValue(options)")),(0,i.kt)("p",null,"Binds a value. The options parameter is described as follows:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"value"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Value to bind"),(0,i.kt)("td",{parentName:"tr",align:"center"},"unknown")))),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"Values are always bound in singleton scope")),(0,i.kt)("h3",{id:"getserviceid"},(0,i.kt)("inlineCode",{parentName:"h3"},"get(serviceId)")),(0,i.kt)("p",null,"Returns a service by its id. If necessary, the service is instantiated."),(0,i.kt)("p",null,"Consider the ",(0,i.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/0.3.1/concepts/binding"},"binding")," page as reference to know more about instance details."),(0,i.kt)("h3",{id:"getbytagtag"},(0,i.kt)("inlineCode",{parentName:"h3"},"getByTag(tag)")),(0,i.kt)("p",null,"Returns all the services associated to a tag. If necessary, services are instantiated."),(0,i.kt)("h3",{id:"getallbindinds"},(0,i.kt)("inlineCode",{parentName:"h3"},"getAllBindinds()")),(0,i.kt)("p",null,"Returns all the bindings registered in the container."),(0,i.kt)("h3",{id:"loadcontainermodule"},(0,i.kt)("inlineCode",{parentName:"h3"},"load(containerModule)")),(0,i.kt)("p",null,"Loads a container module."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,i.kt)("h3",{id:"loadmetadatacontainermodulemetadata"},(0,i.kt)("inlineCode",{parentName:"h3"},"loadMetadata(containerModuleMetadata)")),(0,i.kt)("p",null,"Loads container module metadata"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,i.kt)("h3",{id:"unbindserviceid"},(0,i.kt)("inlineCode",{parentName:"h3"},"unbind(serviceId)")),(0,i.kt)("p",null,"Unbinds a bound service by its id."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5533],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>b});var a=t(9496);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){i(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,i=function(e,n){if(null==e)return{};var t,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var l=a.createContext({}),c=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},s=function(e){var n=c(e.components);return a.createElement(l.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(t),m=i,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||r;return t?a.createElement(b,o(o({ref:n},s),{},{components:t})):a.createElement(b,o({ref:n},s))}));function b(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var r=t.length,o=new Array(r);o[0]=m;var d={};for(var l in n)hasOwnProperty.call(n,l)&&(d[l]=n[l]);d.originalType=e,d[p]="string"==typeof e?e:i,o[1]=d;for(var c=2;c<r;c++)o[c]=t[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5435:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var a=t(7366),i=(t(9496),t(9613));const r={sidebar_position:1,title:"Container API"},o=void 0,d={unversionedId:"api/container",id:"version-0.3.1/api/container",title:"Container API",description:"bind(type)",source:"@site/versioned_docs/version-0.3.1/api/container.md",sourceDirName:"api",slug:"/api/container",permalink:"/iocuak-docs/docs/0.3.1/api/container",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Container API"},sidebar:"sidebar",previous:{title:"Class metadata",permalink:"/iocuak-docs/docs/0.3.1/concepts/class-metadata"},next:{title:"injectable",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator"}},l={},c=[{value:"<code>bind(type)</code>",id:"bindtype",level:3},{value:"<code>bindToValue(options)</code>",id:"bindtovalueoptions",level:3},{value:"<code>get(serviceId)</code>",id:"getserviceid",level:3},{value:"<code>getByTag(tag)</code>",id:"getbytagtag",level:3},{value:"<code>getAllBindinds()</code>",id:"getallbindinds",level:3},{value:"<code>load(containerModule)</code>",id:"loadcontainermodule",level:3},{value:"<code>loadMetadata(containerModuleMetadata)</code>",id:"loadmetadatacontainermodulemetadata",level:3},{value:"<code>unbind(serviceId)</code>",id:"unbindserviceid",level:3}],s={toc:c},p="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(p,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h3",{id:"bindtype"},(0,i.kt)("inlineCode",{parentName:"h3"},"bind(type)")),(0,i.kt)("p",null,"Binds a type. The container takes any binding associated to that type and process it."),(0,i.kt)("h3",{id:"bindtovalueoptions"},(0,i.kt)("inlineCode",{parentName:"h3"},"bindToValue(options)")),(0,i.kt)("p",null,"Binds a value. The options parameter is described as follows:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"value"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Value to bind"),(0,i.kt)("td",{parentName:"tr",align:"center"},"unknown")))),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"Values are always bound in singleton scope")),(0,i.kt)("h3",{id:"getserviceid"},(0,i.kt)("inlineCode",{parentName:"h3"},"get(serviceId)")),(0,i.kt)("p",null,"Returns a service by its id. If necessary, the service is instantiated."),(0,i.kt)("p",null,"Consider the ",(0,i.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/0.3.1/concepts/binding"},"binding")," page as reference to know more about instance details."),(0,i.kt)("h3",{id:"getbytagtag"},(0,i.kt)("inlineCode",{parentName:"h3"},"getByTag(tag)")),(0,i.kt)("p",null,"Returns all the services associated to a tag. If necessary, services are instantiated."),(0,i.kt)("h3",{id:"getallbindinds"},(0,i.kt)("inlineCode",{parentName:"h3"},"getAllBindinds()")),(0,i.kt)("p",null,"Returns all the bindings registered in the container."),(0,i.kt)("h3",{id:"loadcontainermodule"},(0,i.kt)("inlineCode",{parentName:"h3"},"load(containerModule)")),(0,i.kt)("p",null,"Loads a container module."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,i.kt)("h3",{id:"loadmetadatacontainermodulemetadata"},(0,i.kt)("inlineCode",{parentName:"h3"},"loadMetadata(containerModuleMetadata)")),(0,i.kt)("p",null,"Loads container module metadata"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,i.kt)("h3",{id:"unbindserviceid"},(0,i.kt)("inlineCode",{parentName:"h3"},"unbind(serviceId)")),(0,i.kt)("p",null,"Unbinds a bound service by its id."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b238a11.8284d859.js b/assets/js/8b238a11.a01f868d.js similarity index 98% rename from assets/js/8b238a11.8284d859.js rename to assets/js/8b238a11.a01f868d.js index 0a94bb06a..20f06cb2c 100644 --- a/assets/js/8b238a11.8284d859.js +++ b/assets/js/8b238a11.a01f868d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9519],{9613:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},d=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=o,f=s["".concat(l,".").concat(m)]||s[m]||p[m]||i;return t?r.createElement(f,a(a({ref:n},d),{},{components:t})):r.createElement(f,a({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=m;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},9202:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Creating modules"},a=void 0,c={unversionedId:"tutorial/container-modules/creating-modules",id:"version-0.5.0/tutorial/container-modules/creating-modules",title:"Creating modules",description:"A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.",source:"@site/versioned_docs/version-0.5.0/tutorial/container-modules/creating-modules.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/creating-modules",permalink:"/iocuak-docs/docs/tutorial/container-modules/creating-modules",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Creating modules"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/container-modules/introduction"},next:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata"}},l={},u=[],d={toc:u},s="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(s,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A container module declares a ",(0,o.kt)("inlineCode",{parentName:"p"},"load")," method receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleBindingService"),". This service allows us to bind types and values."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,o.kt)("p",null,"This way different service bindings can be grouped."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9519],{9613:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},d=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=o,f=s["".concat(l,".").concat(m)]||s[m]||p[m]||i;return t?r.createElement(f,a(a({ref:n},d),{},{components:t})):r.createElement(f,a({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=m;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},9813:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Creating modules"},a=void 0,c={unversionedId:"tutorial/container-modules/creating-modules",id:"version-0.5.0/tutorial/container-modules/creating-modules",title:"Creating modules",description:"A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.",source:"@site/versioned_docs/version-0.5.0/tutorial/container-modules/creating-modules.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/creating-modules",permalink:"/iocuak-docs/docs/tutorial/container-modules/creating-modules",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Creating modules"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/container-modules/introduction"},next:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata"}},l={},u=[],d={toc:u},s="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(s,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A container module declares a ",(0,o.kt)("inlineCode",{parentName:"p"},"load")," method receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleBindingService"),". This service allows us to bind types and values."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,o.kt)("p",null,"This way different service bindings can be grouped."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8fa4da7f.bc760acf.js b/assets/js/8fa4da7f.76684f85.js similarity index 99% rename from assets/js/8fa4da7f.bc760acf.js rename to assets/js/8fa4da7f.76684f85.js index 7a29cca99..e4173e2ae 100644 --- a/assets/js/8fa4da7f.bc760acf.js +++ b/assets/js/8fa4da7f.76684f85.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6204],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var a=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=l(t),p=o,f=u["".concat(c,".").concat(p)]||u[p]||m[p]||r;return t?a.createElement(f,i(i({ref:n},s),{},{components:t})):a.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=p;var d={};for(var c in n)hasOwnProperty.call(n,c)&&(d[c]=n[c]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var l=2;l<r;l++)i[l]=t[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},6531:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var a=t(7366),o=(t(9496),t(9613));const r={sidebar_position:2,title:"Loading modules from metadata"},i=void 0,d={unversionedId:"tutorial/container-modules/loading-modules-from-metadata",id:"version-0.5.0/tutorial/container-modules/loading-modules-from-metadata",title:"Loading modules from metadata",description:"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.",source:"@site/versioned_docs/version-0.5.0/tutorial/container-modules/loading-modules-from-metadata.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/loading-modules-from-metadata",permalink:"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Loading modules from metadata"},sidebar:"sidebar",previous:{title:"Creating modules",permalink:"/iocuak-docs/docs/tutorial/container-modules/creating-modules"},next:{title:"Binding",permalink:"/iocuak-docs/docs/concepts/binding"}},c={},l=[{value:"Container Module Factory Metatada",id:"container-module-factory-metatada",level:3},{value:"Container Module Class Metadata",id:"container-module-class-metadata",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database."),(0,o.kt)("p",null,"Container module metadata is provided for those purposes."),(0,o.kt)("h3",{id:"container-module-factory-metatada"},"Container Module Factory Metatada"),(0,o.kt)("p",null,"This approach uses a factory to create the module. This metadata can receive an ",(0,o.kt)("inlineCode",{parentName:"p"},"injects")," property to receive injected dependencies."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module."),(0,o.kt)("h3",{id:"container-module-class-metadata"},"Container Module Class Metadata"),(0,o.kt)("p",null,"This approach receives a class which is used to create the module."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModule,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\n@injectable()\nclass MyContainerModule implements ContainerModule {\n\n constructor(\n @inject(Dependency)\n public readonly someServiceDependency: Dependency,\n ) {}\n\n public load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n}\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n imports: [someContainerModuleMetadataDependency],\n module: MyContainerModule,\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports."),(0,o.kt)("p",null,"This approach is highly inspired on ",(0,o.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/fundamentals/dynamic-modules"},"NestJs modules"),"."),(0,o.kt)("p",null,"Consider the ",(0,o.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/concepts/container-module-metadata"},"ContainerModuleMetadata")," page as reference to know more about ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleMetadata")," details."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6204],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var a=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n){if(null==e)return{};var t,a,o=function(e,n){if(null==e)return{};var t,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=l(t),p=o,f=u["".concat(c,".").concat(p)]||u[p]||m[p]||r;return t?a.createElement(f,i(i({ref:n},s),{},{components:t})):a.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=p;var d={};for(var c in n)hasOwnProperty.call(n,c)&&(d[c]=n[c]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var l=2;l<r;l++)i[l]=t[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},9791:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>l});var a=t(7366),o=(t(9496),t(9613));const r={sidebar_position:2,title:"Loading modules from metadata"},i=void 0,d={unversionedId:"tutorial/container-modules/loading-modules-from-metadata",id:"version-0.5.0/tutorial/container-modules/loading-modules-from-metadata",title:"Loading modules from metadata",description:"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.",source:"@site/versioned_docs/version-0.5.0/tutorial/container-modules/loading-modules-from-metadata.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/loading-modules-from-metadata",permalink:"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Loading modules from metadata"},sidebar:"sidebar",previous:{title:"Creating modules",permalink:"/iocuak-docs/docs/tutorial/container-modules/creating-modules"},next:{title:"Binding",permalink:"/iocuak-docs/docs/concepts/binding"}},c={},l=[{value:"Container Module Factory Metatada",id:"container-module-factory-metatada",level:3},{value:"Container Module Class Metadata",id:"container-module-class-metadata",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database."),(0,o.kt)("p",null,"Container module metadata is provided for those purposes."),(0,o.kt)("h3",{id:"container-module-factory-metatada"},"Container Module Factory Metatada"),(0,o.kt)("p",null,"This approach uses a factory to create the module. This metadata can receive an ",(0,o.kt)("inlineCode",{parentName:"p"},"injects")," property to receive injected dependencies."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module."),(0,o.kt)("h3",{id:"container-module-class-metadata"},"Container Module Class Metadata"),(0,o.kt)("p",null,"This approach receives a class which is used to create the module."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModule,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\n@injectable()\nclass MyContainerModule implements ContainerModule {\n\n constructor(\n @inject(Dependency)\n public readonly someServiceDependency: Dependency,\n ) {}\n\n public load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n}\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n imports: [someContainerModuleMetadataDependency],\n module: MyContainerModule,\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,o.kt)("p",null,"Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports."),(0,o.kt)("p",null,"This approach is highly inspired on ",(0,o.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/fundamentals/dynamic-modules"},"NestJs modules"),"."),(0,o.kt)("p",null,"Consider the ",(0,o.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/concepts/container-module-metadata"},"ContainerModuleMetadata")," page as reference to know more about ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleMetadata")," details."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9697.c14856e0.js b/assets/js/9697.c14856e0.js new file mode 100644 index 000000000..ed42c5360 --- /dev/null +++ b/assets/js/9697.c14856e0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9697],{9697:(e,t,a)=>{a.r(t),a.d(t,{default:()=>c});var n=a(9496),o=a(9681),l=a(2583),r=a(2739);function c(){return n.createElement(n.Fragment,null,n.createElement(l.d,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(r.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/98f3f66e.15ff64c5.js b/assets/js/98f3f66e.e63bcd59.js similarity index 98% rename from assets/js/98f3f66e.15ff64c5.js rename to assets/js/98f3f66e.e63bcd59.js index bdf2dc7d4..b2c1d6ed6 100644 --- a/assets/js/98f3f66e.15ff64c5.js +++ b/assets/js/98f3f66e.e63bcd59.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3347],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(s,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},5420:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1},a="Introduction",c={unversionedId:"tutorial/introduction",id:"version-0.3.1/tutorial/introduction",title:"Introduction",description:"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.",source:"@site/versioned_docs/version-0.3.1/tutorial/introduction.md",sourceDirName:"tutorial",slug:"/tutorial/introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/introduction",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",next:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator"}},s={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques."),(0,o.kt)("p",null,"This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3347],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(s,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},5244:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1},a="Introduction",c={unversionedId:"tutorial/introduction",id:"version-0.3.1/tutorial/introduction",title:"Introduction",description:"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.",source:"@site/versioned_docs/version-0.3.1/tutorial/introduction.md",sourceDirName:"tutorial",slug:"/tutorial/introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/introduction",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",next:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator"}},s={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques."),(0,o.kt)("p",null,"This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9952.1954b61c.js b/assets/js/9952.1954b61c.js deleted file mode 100644 index b8f068ef7..000000000 --- a/assets/js/9952.1954b61c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9952],{9952:(e,t,a)=>{a.r(t),a.d(t,{default:()=>c});var n=a(9496),o=a(2878),l=a(4388),r=a(226);function c(){return n.createElement(n.Fragment,null,n.createElement(l.d,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(r.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/9dc3c96b.d053502b.js b/assets/js/9dc3c96b.f3252d6f.js similarity index 98% rename from assets/js/9dc3c96b.d053502b.js rename to assets/js/9dc3c96b.f3252d6f.js index da2f5dcb8..ae1e4ce13 100644 --- a/assets/js/9dc3c96b.d053502b.js +++ b/assets/js/9dc3c96b.f3252d6f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3695],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},8355:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:2,title:"inject"},a=void 0,c={unversionedId:"api/injection/inject-decorator",id:"version-0.5.0/api/injection/inject-decorator",title:"inject",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.5.0/api/injection/inject-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-decorator",permalink:"/iocuak-docs/docs/api/injection/inject-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"inject"},sidebar:"sidebar",previous:{title:"injectable",permalink:"/iocuak-docs/docs/api/injection/injectable-decorator"},next:{title:"injectTag",permalink:"/iocuak-docs/docs/api/injection/inject-tag-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3695],{9613:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},4833:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:2,title:"inject"},a=void 0,c={unversionedId:"api/injection/inject-decorator",id:"version-0.5.0/api/injection/inject-decorator",title:"inject",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.5.0/api/injection/inject-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/inject-decorator",permalink:"/iocuak-docs/docs/api/injection/inject-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"inject"},sidebar:"sidebar",previous:{title:"injectable",permalink:"/iocuak-docs/docs/api/injection/injectable-decorator"},next:{title:"injectTag",permalink:"/iocuak-docs/docs/api/injection/inject-tag-decorator"}},p={},s=[],l={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9fbb8af0.4072b955.js b/assets/js/9fbb8af0.cbbb8b0a.js similarity index 98% rename from assets/js/9fbb8af0.4072b955.js rename to assets/js/9fbb8af0.cbbb8b0a.js index f968a0fe6..6798226f4 100644 --- a/assets/js/9fbb8af0.4072b955.js +++ b/assets/js/9fbb8af0.cbbb8b0a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8531],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=p(n),u=o,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2768:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:4,title:"injectFromBase"},i=void 0,c={unversionedId:"api/injection/injectFromBase-decorator",id:"version-0.5.0/api/injection/injectFromBase-decorator",title:"injectFromBase",description:"@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.",source:"@site/versioned_docs/version-0.5.0/api/injection/injectFromBase-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectFromBase-decorator",permalink:"/iocuak-docs/docs/api/injection/injectFromBase-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"injectFromBase"},sidebar:"sidebar",previous:{title:"injectTag",permalink:"/iocuak-docs/docs/api/injection/inject-tag-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/api/metadata/introduction"}},s={},p=[],l={toc:p},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"@injectabe")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"@inject")," metadata are not propagated to child classes. ",(0,o.kt)("inlineCode",{parentName:"p"},"@injectFromBase")," decorator exists for that purpose."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject, injectable } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId, dummyBarServiceId } from 'some/path';\n\n@injectable()\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n/*\n * @injectFromBase() allows DummyChild to have a foo property with\n * the same metadata as if decorated with @inject(dummyFooServiceId\n */\n\n@injectable()\n@injectFromBase()\nclass DummyChild extends Dummy {\n @inject(dummyBarServiceId)\n public bar: unknown;\n}\n\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8531],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=p(n),u=o,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2812:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:4,title:"injectFromBase"},i=void 0,c={unversionedId:"api/injection/injectFromBase-decorator",id:"version-0.5.0/api/injection/injectFromBase-decorator",title:"injectFromBase",description:"@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.",source:"@site/versioned_docs/version-0.5.0/api/injection/injectFromBase-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectFromBase-decorator",permalink:"/iocuak-docs/docs/api/injection/injectFromBase-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"injectFromBase"},sidebar:"sidebar",previous:{title:"injectTag",permalink:"/iocuak-docs/docs/api/injection/inject-tag-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/api/metadata/introduction"}},s={},p=[],l={toc:p},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"@injectabe")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"@inject")," metadata are not propagated to child classes. ",(0,o.kt)("inlineCode",{parentName:"p"},"@injectFromBase")," decorator exists for that purpose."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject, injectable } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId, dummyBarServiceId } from 'some/path';\n\n@injectable()\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n/*\n * @injectFromBase() allows DummyChild to have a foo property with\n * the same metadata as if decorated with @inject(dummyFooServiceId\n */\n\n@injectable()\n@injectFromBase()\nclass DummyChild extends Dummy {\n @inject(dummyBarServiceId)\n public bar: unknown;\n}\n\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac95828e.592034be.js b/assets/js/ac95828e.fc3f9c12.js similarity index 98% rename from assets/js/ac95828e.592034be.js rename to assets/js/ac95828e.fc3f9c12.js index d89989dcc..faecad374 100644 --- a/assets/js/ac95828e.592034be.js +++ b/assets/js/ac95828e.fc3f9c12.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3948],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},b=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(t),b=o,m=d["".concat(l,".").concat(b)]||d[b]||p[b]||i;return t?r.createElement(m,a(a({ref:n},s),{},{components:t})):r.createElement(m,a({ref:n},s))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}b.displayName="MDXCreateElement"},7518:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Binding a service"},a=void 0,c={unversionedId:"tutorial/the-container-object/binding-a-service",id:"version-0.5.0/tutorial/the-container-object/binding-a-service",title:"Binding a service",description:"Services can be easily bound to the container calling it directly.",source:"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/binding-a-service.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/binding-a-service",permalink:"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Binding a service"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/the-container-object/introduction"},next:{title:"Creating instances",permalink:"/iocuak-docs/docs/tutorial/the-container-object/creating-instances"}},l={},u=[],s={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Services can be easily bound to the container calling it directly."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container } from '@cuaklabs/iocuak';\n\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\n")),(0,o.kt)("p",null,"Services can also be bound through a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModule"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3948],{9613:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},b=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(t),b=o,m=d["".concat(l,".").concat(b)]||d[b]||p[b]||i;return t?r.createElement(m,a(a({ref:n},s),{},{components:t})):r.createElement(m,a({ref:n},s))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}b.displayName="MDXCreateElement"},2125:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Binding a service"},a=void 0,c={unversionedId:"tutorial/the-container-object/binding-a-service",id:"version-0.5.0/tutorial/the-container-object/binding-a-service",title:"Binding a service",description:"Services can be easily bound to the container calling it directly.",source:"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/binding-a-service.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/binding-a-service",permalink:"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Binding a service"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/tutorial/the-container-object/introduction"},next:{title:"Creating instances",permalink:"/iocuak-docs/docs/tutorial/the-container-object/creating-instances"}},l={},u=[],s={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Services can be easily bound to the container calling it directly."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { Container } from '@cuaklabs/iocuak';\n\nclass Dummy {}\n\nconst container: Container = Container.build();\ncontainer.bind(Dummy);\n\n")),(0,o.kt)("p",null,"Services can also be bound through a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModule"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b0d4e835.0ffca3de.js b/assets/js/b0d4e835.7fc30e9f.js similarity index 98% rename from assets/js/b0d4e835.0ffca3de.js rename to assets/js/b0d4e835.7fc30e9f.js index 24d8d83e8..cc7ddb193 100644 --- a/assets/js/b0d4e835.0ffca3de.js +++ b/assets/js/b0d4e835.7fc30e9f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5127],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},2024:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(7366),o=(n(9496),n(9613));const i={sidebar_position:1,title:"Introduction"},a=void 0,c={unversionedId:"tutorial/container-modules/introduction",id:"version-0.3.1/tutorial/container-modules/introduction",title:"Introduction",description:"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.",source:"@site/versioned_docs/version-0.3.1/tutorial/container-modules/introduction.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"Creating instances",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances"},next:{title:"Creating modules",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5127],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3125:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(7366),o=(n(9496),n(9613));const i={sidebar_position:1,title:"Introduction"},a=void 0,c={unversionedId:"tutorial/container-modules/introduction",id:"version-0.3.1/tutorial/container-modules/introduction",title:"Introduction",description:"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.",source:"@site/versioned_docs/version-0.3.1/tutorial/container-modules/introduction.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"Creating instances",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances"},next:{title:"Creating modules",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6b4f634.5cf09006.js b/assets/js/b6b4f634.5cf09006.js new file mode 100644 index 000000000..0b963dd97 --- /dev/null +++ b/assets/js/b6b4f634.5cf09006.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1391],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(9496);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=i,g=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},455:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7366),i=(n(9496),n(9613));const a={sidebar_position:1,title:"Binding"},o=void 0,s={unversionedId:"concepts/binding",id:"version-0.5.0/concepts/binding",title:"Binding",description:"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:",source:"@site/versioned_docs/version-0.5.0/concepts/binding.md",sourceDirName:"concepts",slug:"/concepts/binding",permalink:"/iocuak-docs/docs/concepts/binding",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Binding"},sidebar:"sidebar",previous:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata"},next:{title:"Class metadata",permalink:"/iocuak-docs/docs/concepts/class-metadata"}},c={},l=[{value:"TypeBinding",id:"typebinding",level:2},{value:"Binding scope",id:"binding-scope",level:3}],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"id"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id. Any attempt to create a service matching this service id is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags associated. Any attempt to create a service matching one of these tags is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,i.kt)("p",null,"There are two kinds of bindings:"),(0,i.kt)("h2",{id:"typebinding"},"TypeBinding"),(0,i.kt)("p",null,"A class based binding. A type binding relies on a class constructor to instantiate the service."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Binding scope to determine wheter or not a service should be reused."),(0,i.kt)("td",{parentName:"tr",align:"center"},"BindingScope")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Class to be used to call its constructor"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Newable")))),(0,i.kt)("h3",{id:"binding-scope"},"Binding scope"),(0,i.kt)("p",null,"When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transient: An instance of this service is never reused."),(0,i.kt)("li",{parentName:"ul"},"Request: An instance of this service is reused if service is requested under the same ",(0,i.kt)("inlineCode",{parentName:"li"},"Container.get")," request.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Example"),": Given the services ",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),", both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),". In addition, ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"B"),". If ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," is injected on request scope, a request to the ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," service results in the same ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," instance being injected to both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Singleton: An instance of this service is always reused.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6b4f634.c0810a48.js b/assets/js/b6b4f634.c0810a48.js deleted file mode 100644 index d8334c87c..000000000 --- a/assets/js/b6b4f634.c0810a48.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1391],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(9496);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=i,g=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},5643:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7366),i=(n(9496),n(9613));const a={sidebar_position:1,title:"Binding"},o=void 0,s={unversionedId:"concepts/binding",id:"version-0.5.0/concepts/binding",title:"Binding",description:"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:",source:"@site/versioned_docs/version-0.5.0/concepts/binding.md",sourceDirName:"concepts",slug:"/concepts/binding",permalink:"/iocuak-docs/docs/concepts/binding",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Binding"},sidebar:"sidebar",previous:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata"},next:{title:"Class metadata",permalink:"/iocuak-docs/docs/concepts/class-metadata"}},c={},l=[{value:"TypeBinding",id:"typebinding",level:2},{value:"Binding scope",id:"binding-scope",level:3}],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"id"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id. Any attempt to create a service matching this service id is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags associated. Any attempt to create a service matching one of these tags is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,i.kt)("p",null,"There are two kinds of bindings:"),(0,i.kt)("h2",{id:"typebinding"},"TypeBinding"),(0,i.kt)("p",null,"A class based binding. A type binding relies on a class constructor to instantiate the service."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Binding scope to determine wheter or not a service should be reused."),(0,i.kt)("td",{parentName:"tr",align:"center"},"BindingScope")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Class to be used to call its constructor"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Newable")))),(0,i.kt)("h3",{id:"binding-scope"},"Binding scope"),(0,i.kt)("p",null,"When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transient: An instance of this service is never reused."),(0,i.kt)("li",{parentName:"ul"},"Request: An instance of this service is reused if service is requested under the same ",(0,i.kt)("inlineCode",{parentName:"li"},"Container.get")," request.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Example"),": Given the services ",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),", both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),". In addition, ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"B"),". If ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," is injected on request scope, a request to the ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," service results in the same ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," instance being injected to both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Singleton: An instance of this service is always reused.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bcaa6898.2578cdbd.js b/assets/js/bcaa6898.82a16373.js similarity index 98% rename from assets/js/bcaa6898.2578cdbd.js rename to assets/js/bcaa6898.82a16373.js index 2fb84fff7..5e99a6b1d 100644 --- a/assets/js/bcaa6898.2578cdbd.js +++ b/assets/js/bcaa6898.82a16373.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6206],{9613:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),d=l(r),f=o,b=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(b,c(c({ref:t},u),{},{components:r})):n.createElement(b,c({ref:t},u))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,c[1]=a;for(var l=2;l<i;l++)c[l]=r[l];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},5452:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1,title:"Introduction"},c=void 0,a={unversionedId:"tutorial/the-container-object/introduction",id:"version-0.4.0/tutorial/the-container-object/introduction",title:"Introduction",description:"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.",source:"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/introduction.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"The inject decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator"},next:{title:"Binding a service",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service"}},s={},l=[],u={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6206],{9613:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var n=r(9496);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(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)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),d=l(r),f=o,b=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(b,c(c({ref:t},u),{},{components:r})):n.createElement(b,c({ref:t},u))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,c[1]=a;for(var l=2;l<i;l++)c[l]=r[l];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},7356:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(7366),o=(r(9496),r(9613));const i={sidebar_position:1,title:"Introduction"},c=void 0,a={unversionedId:"tutorial/the-container-object/introduction",id:"version-0.4.0/tutorial/the-container-object/introduction",title:"Introduction",description:"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.",source:"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/introduction.md",sourceDirName:"tutorial/the-container-object",slug:"/tutorial/the-container-object/introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"The inject decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator"},next:{title:"Binding a service",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service"}},s={},l=[],u={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c47f43be.67ce743b.js b/assets/js/c47f43be.67ce743b.js deleted file mode 100644 index 615d7d1c9..000000000 --- a/assets/js/c47f43be.67ce743b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8884],{9613:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var d=n.createContext({}),c=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(d.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(a),s=r,k=u["".concat(d,".").concat(s)]||u[s]||m[s]||o;return a?n.createElement(k,i(i({ref:t},p),{},{components:a})):n.createElement(k,i({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var c=2;c<o;c++)i[c]=a[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},6950:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=a(7366),r=(a(9496),a(9613));const o={sidebar_position:3,title:"Container module metadata"},i=void 0,l={unversionedId:"concepts/container-module-metadata",id:"version-0.5.0/concepts/container-module-metadata",title:"Container module metadata",description:"Represents configuration to build and load a container module.",source:"@site/versioned_docs/version-0.5.0/concepts/container-module-metadata.md",sourceDirName:"concepts",slug:"/concepts/container-module-metadata",permalink:"/iocuak-docs/docs/concepts/container-module-metadata",draft:!1,tags:[],version:"0.5.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Container module metadata"},sidebar:"sidebar",previous:{title:"Class metadata",permalink:"/iocuak-docs/docs/concepts/class-metadata"},next:{title:"Container API",permalink:"/iocuak-docs/docs/api/container"}},d={},c=[{value:"ContainerModuleFactoryMetadata",id:"containermodulefactorymetadata",level:3},{value:"ContainerModuleClassMetadata",id:"containermoduleclassmetadata",level:3},{value:"ContainerModule",id:"containermodule",level:3},{value:"Newable<ContainerModule>",id:"newablecontainermodule",level:3}],p={toc:c},u="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents configuration to build and load a container module."),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleMetadata")," can be of four different different kinds:"),(0,r.kt)("h3",{id:"containermodulefactorymetadata"},"ContainerModuleFactoryMetadata"),(0,r.kt)("p",null,"Represents a container module to be built using a factory."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadataId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"imports"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Dependencies required to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"factory"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Function to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Function")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"injects"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Services to be passed as arguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ServiceId[]")))),(0,r.kt)("h3",{id:"containermoduleclassmetadata"},"ContainerModuleClassMetadata"),(0,r.kt)("p",null,"Represents a container module to be built using a decorated ContainerModule class."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadataId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"imports"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Dependencies required to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadaClass to be loaded"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Newable","<","ContainerModuleMetadata",">")))),(0,r.kt)("h3",{id:"containermodule"},"ContainerModule"),(0,r.kt)("p",null,"Represents a ContainerModule instance to be loaded. Equivalent to a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleFactoryMetadata")," with a factory with no arguments returning the module."),(0,r.kt)("h3",{id:"newablecontainermodule"},"Newable","<","ContainerModule",">"),(0,r.kt)("p",null,"Represents a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModule")," class to be instantiated in order to load a container module. Equivalent to a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleClassMetadata")," with no the class as module."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c47f43be.90fd83f7.js b/assets/js/c47f43be.90fd83f7.js new file mode 100644 index 000000000..60f9777b1 --- /dev/null +++ b/assets/js/c47f43be.90fd83f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[8884],{9613:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var d=n.createContext({}),c=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(d.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(a),s=r,k=u["".concat(d,".").concat(s)]||u[s]||m[s]||o;return a?n.createElement(k,i(i({ref:t},p),{},{components:a})):n.createElement(k,i({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=s;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var c=2;c<o;c++)i[c]=a[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},435:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=a(7366),r=(a(9496),a(9613));const o={sidebar_position:3,title:"Container module metadata"},i=void 0,l={unversionedId:"concepts/container-module-metadata",id:"version-0.5.0/concepts/container-module-metadata",title:"Container module metadata",description:"Represents configuration to build and load a container module.",source:"@site/versioned_docs/version-0.5.0/concepts/container-module-metadata.md",sourceDirName:"concepts",slug:"/concepts/container-module-metadata",permalink:"/iocuak-docs/docs/concepts/container-module-metadata",draft:!1,tags:[],version:"0.5.0",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Container module metadata"},sidebar:"sidebar",previous:{title:"Class metadata",permalink:"/iocuak-docs/docs/concepts/class-metadata"},next:{title:"Container API",permalink:"/iocuak-docs/docs/api/container"}},d={},c=[{value:"ContainerModuleFactoryMetadata",id:"containermodulefactorymetadata",level:3},{value:"ContainerModuleClassMetadata",id:"containermoduleclassmetadata",level:3},{value:"ContainerModule",id:"containermodule",level:3},{value:"Newable<ContainerModule>",id:"newablecontainermodule",level:3}],p={toc:c},u="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents configuration to build and load a container module."),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleMetadata")," can be of four different different kinds:"),(0,r.kt)("h3",{id:"containermodulefactorymetadata"},"ContainerModuleFactoryMetadata"),(0,r.kt)("p",null,"Represents a container module to be built using a factory."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadataId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"imports"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Dependencies required to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"factory"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Function to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Function")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"injects"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Services to be passed as arguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ServiceId[]")))),(0,r.kt)("h3",{id:"containermoduleclassmetadata"},"ContainerModuleClassMetadata"),(0,r.kt)("p",null,"Represents a container module to be built using a decorated ContainerModule class."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata id"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadataId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"imports"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Dependencies required to build the module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadata[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"module"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ContainerModuleMetadaClass to be loaded"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Newable","<","ContainerModuleMetadata",">")))),(0,r.kt)("h3",{id:"containermodule"},"ContainerModule"),(0,r.kt)("p",null,"Represents a ContainerModule instance to be loaded. Equivalent to a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleFactoryMetadata")," with a factory with no arguments returning the module."),(0,r.kt)("h3",{id:"newablecontainermodule"},"Newable","<","ContainerModule",">"),(0,r.kt)("p",null,"Represents a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModule")," class to be instantiated in order to load a container module. Equivalent to a ",(0,r.kt)("inlineCode",{parentName:"p"},"ContainerModuleClassMetadata")," with no the class as module."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c5629734.0c7a28c4.js b/assets/js/c5629734.8655175f.js similarity index 98% rename from assets/js/c5629734.0c7a28c4.js rename to assets/js/c5629734.8655175f.js index ca12b8146..b7aee8d2c 100644 --- a/assets/js/c5629734.0c7a28c4.js +++ b/assets/js/c5629734.8655175f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3615],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var r=n(9496);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),b=a,u=d["".concat(s,".").concat(b)]||d[b]||m[b]||o;return n?r.createElement(u,i(i({ref:t},p),{},{components:n})):r.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},6312:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7366),a=(n(9496),n(9613));const o={sidebar_position:1,title:"injectable"},i=void 0,c={unversionedId:"api/injection/injectable-decorator",id:"version-0.5.0/api/injection/injectable-decorator",title:"injectable",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.5.0/api/injection/injectable-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectable-decorator",permalink:"/iocuak-docs/docs/api/injection/injectable-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"injectable"},sidebar:"sidebar",previous:{title:"Container API",permalink:"/iocuak-docs/docs/api/container"},next:{title:"inject",permalink:"/iocuak-docs/docs/api/injection/inject-decorator"}},s={},l=[],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,a.kt)("p",null,"The options parameter is described as follows:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Binding scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Consider ",(0,a.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3615],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var r=n(9496);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),b=a,u=d["".concat(s,".").concat(b)]||d[b]||m[b]||o;return n?r.createElement(u,i(i({ref:t},p),{},{components:n})):r.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},9043:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7366),a=(n(9496),n(9613));const o={sidebar_position:1,title:"injectable"},i=void 0,c={unversionedId:"api/injection/injectable-decorator",id:"version-0.5.0/api/injection/injectable-decorator",title:"injectable",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.5.0/api/injection/injectable-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectable-decorator",permalink:"/iocuak-docs/docs/api/injection/injectable-decorator",draft:!1,tags:[],version:"0.5.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"injectable"},sidebar:"sidebar",previous:{title:"Container API",permalink:"/iocuak-docs/docs/api/container"},next:{title:"inject",permalink:"/iocuak-docs/docs/api/injection/inject-decorator"}},s={},l=[],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,a.kt)("p",null,"The options parameter is described as follows:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Binding scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Consider ",(0,a.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c8545ad7.14aa3daa.js b/assets/js/c8545ad7.b5a745cb.js similarity index 99% rename from assets/js/c8545ad7.14aa3daa.js rename to assets/js/c8545ad7.b5a745cb.js index 7b708169f..e8cbd0c02 100644 --- a/assets/js/c8545ad7.14aa3daa.js +++ b/assets/js/c8545ad7.b5a745cb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5628],{9613:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),o=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=o(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=o(a),u=r,k=p["".concat(c,".").concat(u)]||p[u]||m[u]||s;return a?n.createElement(k,l(l({ref:t},d),{},{components:a})):n.createElement(k,l({ref:t},d))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,l=new Array(s);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var o=2;o<s;o++)l[o]=a[o];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8174:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>o});var n=a(7366),r=(a(9496),a(9613));const s={sidebar_position:2,title:"Class metadata"},l=void 0,i={unversionedId:"concepts/class-metadata",id:"version-0.5.0/concepts/class-metadata",title:"Class metadata",description:"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.",source:"@site/versioned_docs/version-0.5.0/concepts/class-metadata.md",sourceDirName:"concepts",slug:"/concepts/class-metadata",permalink:"/iocuak-docs/docs/concepts/class-metadata",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Class metadata"},sidebar:"sidebar",previous:{title:"Binding",permalink:"/iocuak-docs/docs/concepts/binding"},next:{title:"Container module metadata",permalink:"/iocuak-docs/docs/concepts/container-module-metadata"}},c={},o=[{value:"ClassElementMetadata",id:"classelementmetadata",level:2},{value:"ClassElementServiceIdMetadata",id:"classelementserviceidmetadata",level:3},{value:"ClassElementTagMetadataApi",id:"classelementtagmetadataapi",level:3}],d={toc:o},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"constructorArguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Constructor arguments metadata"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadata")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"properties"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Properties metadata."),(0,r.kt)("td",{parentName:"tr",align:"center"},"Map<string ","|"," symbol, ClassElementMetadata>")))),(0,r.kt)("h2",{id:"classelementmetadata"},"ClassElementMetadata"),(0,r.kt)("p",null,"Class element metadata can be of two different kinds:"),(0,r.kt)("h3",{id:"classelementserviceidmetadata"},"ClassElementServiceIdMetadata"),(0,r.kt)("p",null,"Represents a service dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.serviceId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,r.kt)("h3",{id:"classelementtagmetadataapi"},"ClassElementTagMetadataApi"),(0,r.kt)("p",null,"Represents services associated to a tag dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.tag")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tag associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5628],{9613:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),o=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=o(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=o(a),u=r,k=p["".concat(c,".").concat(u)]||p[u]||m[u]||s;return a?n.createElement(k,l(l({ref:t},d),{},{components:a})):n.createElement(k,l({ref:t},d))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,l=new Array(s);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var o=2;o<s;o++)l[o]=a[o];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},3532:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>o});var n=a(7366),r=(a(9496),a(9613));const s={sidebar_position:2,title:"Class metadata"},l=void 0,i={unversionedId:"concepts/class-metadata",id:"version-0.5.0/concepts/class-metadata",title:"Class metadata",description:"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.",source:"@site/versioned_docs/version-0.5.0/concepts/class-metadata.md",sourceDirName:"concepts",slug:"/concepts/class-metadata",permalink:"/iocuak-docs/docs/concepts/class-metadata",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Class metadata"},sidebar:"sidebar",previous:{title:"Binding",permalink:"/iocuak-docs/docs/concepts/binding"},next:{title:"Container module metadata",permalink:"/iocuak-docs/docs/concepts/container-module-metadata"}},c={},o=[{value:"ClassElementMetadata",id:"classelementmetadata",level:2},{value:"ClassElementServiceIdMetadata",id:"classelementserviceidmetadata",level:3},{value:"ClassElementTagMetadataApi",id:"classelementtagmetadataapi",level:3}],d={toc:o},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"constructorArguments"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Constructor arguments metadata"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadata")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"properties"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Properties metadata."),(0,r.kt)("td",{parentName:"tr",align:"center"},"Map<string ","|"," symbol, ClassElementMetadata>")))),(0,r.kt)("h2",{id:"classelementmetadata"},"ClassElementMetadata"),(0,r.kt)("p",null,"Class element metadata can be of two different kinds:"),(0,r.kt)("h3",{id:"classelementserviceidmetadata"},"ClassElementServiceIdMetadata"),(0,r.kt)("p",null,"Represents a service dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.serviceId")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,r.kt)("h3",{id:"classelementtagmetadataapi"},"ClassElementTagMetadataApi"),(0,r.kt)("p",null,"Represents services associated to a tag dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Class element metadata type"),(0,r.kt)("td",{parentName:"tr",align:"center"},"ClassElementMetadatApi.tag")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tag associated to the element"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/caf8c733.8814640b.js b/assets/js/caf8c733.8e4b653a.js similarity index 98% rename from assets/js/caf8c733.8814640b.js rename to assets/js/caf8c733.8e4b653a.js index 1945661a3..162cf93a7 100644 --- a/assets/js/caf8c733.8814640b.js +++ b/assets/js/caf8c733.8e4b653a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9230],{9613:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),b=o,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},7120:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:1,title:"The injectable decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/injectable-decorator",id:"version-0.4.0/tutorial/decorating-classes/injectable-decorator",title:"The injectable decorator",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.4.0/tutorial/decorating-classes/injectable-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/injectable-decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"The injectable decorator"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/introduction"},next:{title:"The inject decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator"}},s={},l=[],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst barSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on singleton scope. Its service id is the barSymbol symbol\n */\n@injectable({\n id: barSymbol,\n scope: BindingScope.singleton,\n})\nclass Bar {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Consider ",(0,o.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9230],{9613:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),b=o,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},6074:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7366),o=(n(9496),n(9613));const a={sidebar_position:1,title:"The injectable decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/injectable-decorator",id:"version-0.4.0/tutorial/decorating-classes/injectable-decorator",title:"The injectable decorator",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.4.0/tutorial/decorating-classes/injectable-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/injectable-decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"The injectable decorator"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/introduction"},next:{title:"The inject decorator",permalink:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator"}},s={},l=[],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst barSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on singleton scope. Its service id is the barSymbol symbol\n */\n@injectable({\n id: barSymbol,\n scope: BindingScope.singleton,\n})\nclass Bar {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Consider ",(0,o.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e1a62a5e.4a26b29b.js b/assets/js/e1a62a5e.e7f62a41.js similarity index 98% rename from assets/js/e1a62a5e.4a26b29b.js rename to assets/js/e1a62a5e.e7f62a41.js index 1e7bdf18f..e8f8a8770 100644 --- a/assets/js/e1a62a5e.4a26b29b.js +++ b/assets/js/e1a62a5e.e7f62a41.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5389],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},2576:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(7366),o=(n(9496),n(9613));const i={sidebar_position:1,title:"Introduction"},a=void 0,c={unversionedId:"tutorial/container-modules/introduction",id:"tutorial/container-modules/introduction",title:"Introduction",description:"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.",source:"@site/docs/tutorial/container-modules/introduction.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/introduction",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/introduction",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"Creating instances",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances"},next:{title:"Creating modules",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5389],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},1891:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(7366),o=(n(9496),n(9613));const i={sidebar_position:1,title:"Introduction"},a=void 0,c={unversionedId:"tutorial/container-modules/introduction",id:"tutorial/container-modules/introduction",title:"Introduction",description:"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.",source:"@site/docs/tutorial/container-modules/introduction.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/introduction",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/introduction",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"Creating instances",permalink:"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances"},next:{title:"Creating modules",permalink:"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e3e01cfb.d34490f3.js b/assets/js/e3e01cfb.24514ea3.js similarity index 98% rename from assets/js/e3e01cfb.d34490f3.js rename to assets/js/e3e01cfb.24514ea3.js index df320b1cf..4ff00a742 100644 --- a/assets/js/e3e01cfb.d34490f3.js +++ b/assets/js/e3e01cfb.24514ea3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6024],{9613:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>y});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function d(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=p(a),u=r,y=l["".concat(c,".").concat(u)]||l[u]||m[u]||i;return a?n.createElement(y,o(o({ref:t},s),{},{components:a})):n.createElement(y,o({ref:t},s))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[l]="string"==typeof e?e:r,o[1]=d;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8527:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=a(7366),r=(a(9496),a(9613));const i={sidebar_position:2,title:"Metadata provider"},o=void 0,d={unversionedId:"api/metadata/metadata-provider",id:"version-0.4.0/api/metadata/metadata-provider",title:"Metadata provider",description:"The MetadataProvider class is provided to easily extract metadata of a given type",source:"@site/versioned_docs/version-0.4.0/api/metadata/metadata-provider.md",sourceDirName:"api/metadata",slug:"/api/metadata/metadata-provider",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Metadata provider"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/introduction"}},c={},p=[{value:"<code>getBindingMetadata(type)</code>",id:"getbindingmetadatatype",level:2},{value:"<code>getClassMetadata(type)</code>",id:"getclassmetadatatype",level:2}],s={toc:p},l="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(l,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"MetadataProvider")," class is provided to easily extract metadata of a given type"),(0,r.kt)("h2",{id:"getbindingmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getBindingMetadata(type)")),(0,r.kt)("p",null,"Provides binding metadata associated to that type."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values (bound by ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.bindToValue()"),") do not have metadata directly associated. Those bindings can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.getAllBindings()"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);\n")),(0,r.kt)("h2",{id:"getclassmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getClassMetadata(type)")),(0,r.kt)("p",null,"Provides class metadata associated to that type."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[6024],{9613:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>y});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function d(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=p(a),u=r,y=l["".concat(c,".").concat(u)]||l[u]||m[u]||i;return a?n.createElement(y,o(o({ref:t},s),{},{components:a})):n.createElement(y,o({ref:t},s))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[l]="string"==typeof e?e:r,o[1]=d;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},7566:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=a(7366),r=(a(9496),a(9613));const i={sidebar_position:2,title:"Metadata provider"},o=void 0,d={unversionedId:"api/metadata/metadata-provider",id:"version-0.4.0/api/metadata/metadata-provider",title:"Metadata provider",description:"The MetadataProvider class is provided to easily extract metadata of a given type",source:"@site/versioned_docs/version-0.4.0/api/metadata/metadata-provider.md",sourceDirName:"api/metadata",slug:"/api/metadata/metadata-provider",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider",draft:!1,tags:[],version:"0.4.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Metadata provider"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.4.0/api/metadata/introduction"}},c={},p=[{value:"<code>getBindingMetadata(type)</code>",id:"getbindingmetadatatype",level:2},{value:"<code>getClassMetadata(type)</code>",id:"getclassmetadatatype",level:2}],s={toc:p},l="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(l,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"MetadataProvider")," class is provided to easily extract metadata of a given type"),(0,r.kt)("h2",{id:"getbindingmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getBindingMetadata(type)")),(0,r.kt)("p",null,"Provides binding metadata associated to that type."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values (bound by ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.bindToValue()"),") do not have metadata directly associated. Those bindings can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.getAllBindings()"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);\n")),(0,r.kt)("h2",{id:"getclassmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getClassMetadata(type)")),(0,r.kt)("p",null,"Provides class metadata associated to that type."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e857c64f.8d610b96.js b/assets/js/e857c64f.99e3f14c.js similarity index 98% rename from assets/js/e857c64f.8d610b96.js rename to assets/js/e857c64f.99e3f14c.js index c3ab3ef21..9708ea7d8 100644 --- a/assets/js/e857c64f.8d610b96.js +++ b/assets/js/e857c64f.99e3f14c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1109],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var o=r(9496);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}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){n(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 c(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=n,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?o.createElement(f,i(i({ref:t},p),{},{components:r})):o.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:n,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}m.displayName="MDXCreateElement"},4707:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=r(7366),n=(r(9496),r(9613));const a={sidebar_position:2,title:"The inject decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/inject-decorator",id:"version-0.3.1/tutorial/decorating-classes/inject-decorator",title:"The inject decorator",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.3.1/tutorial/decorating-classes/inject-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/inject-decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"The inject decorator"},sidebar:"sidebar",previous:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction"}},s={},l=[],p={toc:l},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")),(0,n.kt)("p",null,"This way the IoC container knows the property ",(0,n.kt)("inlineCode",{parentName:"p"},"foo")," should be injected with the service associated to ",(0,n.kt)("inlineCode",{parentName:"p"},"dummyFooServiceId"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1109],{9613:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var o=r(9496);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}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){n(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 c(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),l=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=n,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?o.createElement(f,i(i({ref:t},p),{},{components:r})):o.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:n,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6408:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=r(7366),n=(r(9496),r(9613));const a={sidebar_position:2,title:"The inject decorator"},i=void 0,c={unversionedId:"tutorial/decorating-classes/inject-decorator",id:"version-0.3.1/tutorial/decorating-classes/inject-decorator",title:"The inject decorator",description:"This decorator targets a property or a parameter and provides the service associated.",source:"@site/versioned_docs/version-0.3.1/tutorial/decorating-classes/inject-decorator.md",sourceDirName:"tutorial/decorating-classes",slug:"/tutorial/decorating-classes/inject-decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"The inject decorator"},sidebar:"sidebar",previous:{title:"The injectable decorator",permalink:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator"},next:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction"}},s={},l=[],p={toc:l},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,o.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This decorator targets a property or a parameter and provides the service associated."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"import { inject } from '@cuaklabs/iocuak';\n\nimport { dummyFooServiceId } from 'some/path';\n\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\n")),(0,n.kt)("p",null,"This way the IoC container knows the property ",(0,n.kt)("inlineCode",{parentName:"p"},"foo")," should be injected with the service associated to ",(0,n.kt)("inlineCode",{parentName:"p"},"dummyFooServiceId"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1668c61.c2a2819e.js b/assets/js/f1668c61.825dbb46.js similarity index 99% rename from assets/js/f1668c61.c2a2819e.js rename to assets/js/f1668c61.825dbb46.js index 8cccd0a04..27a3fb0e3 100644 --- a/assets/js/f1668c61.c2a2819e.js +++ b/assets/js/f1668c61.825dbb46.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[415],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(9496);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=i,g=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},6526:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7366),i=(n(9496),n(9613));const a={sidebar_position:1,title:"Binding"},o=void 0,s={unversionedId:"concepts/binding",id:"version-0.3.1/concepts/binding",title:"Binding",description:"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:",source:"@site/versioned_docs/version-0.3.1/concepts/binding.md",sourceDirName:"concepts",slug:"/concepts/binding",permalink:"/iocuak-docs/docs/0.3.1/concepts/binding",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Binding"},sidebar:"sidebar",previous:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata"},next:{title:"Class metadata",permalink:"/iocuak-docs/docs/0.3.1/concepts/class-metadata"}},c={},l=[{value:"TypeBinding",id:"typebinding",level:2},{value:"Binding scope",id:"binding-scope",level:3}],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"id"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id. Any attempt to create a service matching this service id is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags associated. Any attempt to create a service matching one of these tags is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,i.kt)("p",null,"There are two kinds of bindings:"),(0,i.kt)("h2",{id:"typebinding"},"TypeBinding"),(0,i.kt)("p",null,"A class based binding. A type binding relies on a class constructor to instantiate the service."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Binding scope to determine wheter or not a service should be reused."),(0,i.kt)("td",{parentName:"tr",align:"center"},"BindingScope")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Class to be used to call its constructor"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Newable")))),(0,i.kt)("h3",{id:"binding-scope"},"Binding scope"),(0,i.kt)("p",null,"When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transient: An instance of this service is never reused."),(0,i.kt)("li",{parentName:"ul"},"Request: An instance of this service is reused if service is requested under the same ",(0,i.kt)("inlineCode",{parentName:"li"},"Container.get")," request.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Example"),": Given the services ",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),", both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),". In addition, ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"B"),". If ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," is injected on request scope, a request to the ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," service results in the same ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," instance being injected to both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Singleton: An instance of this service is always reused.")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[415],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(9496);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=i,g=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var l=2;l<a;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},3409:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7366),i=(n(9496),n(9613));const a={sidebar_position:1,title:"Binding"},o=void 0,s={unversionedId:"concepts/binding",id:"version-0.3.1/concepts/binding",title:"Binding",description:"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:",source:"@site/versioned_docs/version-0.3.1/concepts/binding.md",sourceDirName:"concepts",slug:"/concepts/binding",permalink:"/iocuak-docs/docs/0.3.1/concepts/binding",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Binding"},sidebar:"sidebar",previous:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata"},next:{title:"Class metadata",permalink:"/iocuak-docs/docs/0.3.1/concepts/class-metadata"}},c={},l=[{value:"TypeBinding",id:"typebinding",level:2},{value:"Binding scope",id:"binding-scope",level:3}],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"id"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Service id. Any attempt to create a service matching this service id is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Tags associated. Any attempt to create a service matching one of these tags is going to use this binding."),(0,i.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")))),(0,i.kt)("p",null,"There are two kinds of bindings:"),(0,i.kt)("h2",{id:"typebinding"},"TypeBinding"),(0,i.kt)("p",null,"A class based binding. A type binding relies on a class constructor to instantiate the service."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Binding scope to determine wheter or not a service should be reused."),(0,i.kt)("td",{parentName:"tr",align:"center"},"BindingScope")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"left"},"type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Class to be used to call its constructor"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Newable")))),(0,i.kt)("h3",{id:"binding-scope"},"Binding scope"),(0,i.kt)("p",null,"When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transient: An instance of this service is never reused."),(0,i.kt)("li",{parentName:"ul"},"Request: An instance of this service is reused if service is requested under the same ",(0,i.kt)("inlineCode",{parentName:"li"},"Container.get")," request.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Example"),": Given the services ",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),", both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),". In addition, ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," services depends on ",(0,i.kt)("inlineCode",{parentName:"p"},"B"),". If ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," is injected on request scope, a request to the ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," service results in the same ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," instance being injected to both ",(0,i.kt)("inlineCode",{parentName:"p"},"A")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," services."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Singleton: An instance of this service is always reused.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f29603b8.12b7f607.js b/assets/js/f29603b8.bdea253d.js similarity index 98% rename from assets/js/f29603b8.12b7f607.js rename to assets/js/f29603b8.bdea253d.js index e70919255..b1a0afa32 100644 --- a/assets/js/f29603b8.12b7f607.js +++ b/assets/js/f29603b8.bdea253d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9323],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},7119:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(7366),o=(n(9496),n(9613));const i={sidebar_position:1,title:"Introduction"},a=void 0,c={unversionedId:"tutorial/container-modules/introduction",id:"version-0.4.0/tutorial/container-modules/introduction",title:"Introduction",description:"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.",source:"@site/versioned_docs/version-0.4.0/tutorial/container-modules/introduction.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"Creating instances",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances"},next:{title:"Creating modules",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9323],{9613:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(9496);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},8823:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(7366),o=(n(9496),n(9613));const i={sidebar_position:1,title:"Introduction"},a=void 0,c={unversionedId:"tutorial/container-modules/introduction",id:"version-0.4.0/tutorial/container-modules/introduction",title:"Introduction",description:"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.",source:"@site/versioned_docs/version-0.4.0/tutorial/container-modules/introduction.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/introduction",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction"},sidebar:"sidebar",previous:{title:"Creating instances",permalink:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances"},next:{title:"Creating modules",permalink:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules"}},s={},u=[],l={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f5fb8451.01ed7492.js b/assets/js/f5fb8451.b0ea257f.js similarity index 98% rename from assets/js/f5fb8451.01ed7492.js rename to assets/js/f5fb8451.b0ea257f.js index 2fbb3f2f2..00f30b921 100644 --- a/assets/js/f5fb8451.01ed7492.js +++ b/assets/js/f5fb8451.b0ea257f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1784],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var r=n(9496);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),b=a,u=d["".concat(s,".").concat(b)]||d[b]||m[b]||o;return n?r.createElement(u,i(i({ref:t},p),{},{components:n})):r.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},5755:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7366),a=(n(9496),n(9613));const o={sidebar_position:1,title:"injectable"},i=void 0,c={unversionedId:"api/injection/injectable-decorator",id:"version-0.3.1/api/injection/injectable-decorator",title:"injectable",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.3.1/api/injection/injectable-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectable-decorator",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"injectable"},sidebar:"sidebar",previous:{title:"Container API",permalink:"/iocuak-docs/docs/0.3.1/api/container"},next:{title:"inject",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator"}},s={},l=[],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,a.kt)("p",null,"The options parameter is described as follows:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Binding scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Consider ",(0,a.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[1784],{9613:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var r=n(9496);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),b=a,u=d["".concat(s,".").concat(b)]||d[b]||m[b]||o;return n?r.createElement(u,i(i({ref:t},p),{},{components:n})):r.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}b.displayName="MDXCreateElement"},3190:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7366),a=(n(9496),n(9613));const o={sidebar_position:1,title:"injectable"},i=void 0,c={unversionedId:"api/injection/injectable-decorator",id:"version-0.3.1/api/injection/injectable-decorator",title:"injectable",description:"This decorator targets a class and allows to provide options to set its binding.",source:"@site/versioned_docs/version-0.3.1/api/injection/injectable-decorator.md",sourceDirName:"api/injection",slug:"/api/injection/injectable-decorator",permalink:"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator",draft:!1,tags:[],version:"0.3.1",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"injectable"},sidebar:"sidebar",previous:{title:"Container API",permalink:"/iocuak-docs/docs/0.3.1/api/container"},next:{title:"inject",permalink:"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator"}},s={},l=[],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This decorator targets a class and allows to provide options to set its binding."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { injectable, BindingScope } from '@cuaklabs/iocuak';\n\n/**\n * Foo is injectable on transient scope and its service id is the type Foo itself\n */\n@injectable()\nclass Foo {}\n\nconst bazSymbol: symbol = Symbol();\n\n/** \n * Bar is injectable on request scope. Its service id is the bazSymbol symbol.\n * It's associated to the providers tag\n */\n@injectable({\n id: bazSymbol,\n scope: BindingScope.request,\n tags: [providers]\n})\nclass Baz {}\n")),(0,a.kt)("p",null,"The options parameter is described as follows:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,a.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,a.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"Binding scope"),(0,a.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Consider ",(0,a.kt)("a",{parentName:"p",href:"../../concepts/binding"},"binding docs")," as reference.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa3fb5e6.cd3352a3.js b/assets/js/fa3fb5e6.fb00d6a5.js similarity index 99% rename from assets/js/fa3fb5e6.cd3352a3.js rename to assets/js/fa3fb5e6.fb00d6a5.js index f18c3c2ac..3c084d27e 100644 --- a/assets/js/fa3fb5e6.cd3352a3.js +++ b/assets/js/fa3fb5e6.fb00d6a5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3095],{9613:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>b});var a=n(9496);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?a.createElement(b,o(o({ref:t},s),{},{components:n})):a.createElement(b,o({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:r,o[1]=d;for(var c=2;c<i;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},1566:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=n(7366),r=(n(9496),n(9613));const i={sidebar_position:1,title:"Container API"},o=void 0,d={unversionedId:"api/container",id:"version-0.4.0/api/container",title:"Container API",description:"bind(type, options)",source:"@site/versioned_docs/version-0.4.0/api/container.md",sourceDirName:"api",slug:"/api/container",permalink:"/iocuak-docs/docs/0.4.0/api/container",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Container API"},sidebar:"sidebar",previous:{title:"Class metadata",permalink:"/iocuak-docs/docs/0.4.0/concepts/class-metadata"},next:{title:"injectable",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator"}},l={},c=[{value:"<code>bind(type, options)</code>",id:"bindtype-options",level:3},{value:"<code>bindToValue(options)</code>",id:"bindtovalueoptions",level:3},{value:"<code>get(serviceId)</code>",id:"getserviceid",level:3},{value:"<code>getByTag(tag)</code>",id:"getbytagtag",level:3},{value:"<code>getAllBindinds()</code>",id:"getallbindinds",level:3},{value:"<code>load(containerModule)</code>",id:"loadcontainermodule",level:3},{value:"<code>loadMetadata(containerModuleMetadata)</code>",id:"loadmetadatacontainermodulemetadata",level:3},{value:"<code>unbind(serviceId)</code>",id:"unbindserviceid",level:3}],s={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"bindtype-options"},(0,r.kt)("inlineCode",{parentName:"h3"},"bind(type, options)")),(0,r.kt)("p",null,"Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Binding scope to apply"),(0,r.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,r.kt)("h3",{id:"bindtovalueoptions"},(0,r.kt)("inlineCode",{parentName:"h3"},"bindToValue(options)")),(0,r.kt)("p",null,"Binds a value. The options parameter is described as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Value to bind"),(0,r.kt)("td",{parentName:"tr",align:"center"},"unknown")))),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values are always bound in singleton scope")),(0,r.kt)("h3",{id:"getserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"get(serviceId)")),(0,r.kt)("p",null,"Returns a service by its id. If necessary, the service is instantiated."),(0,r.kt)("p",null,"Consider the ",(0,r.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/0.4.0/concepts/binding"},"binding")," page as reference to know more about instance details."),(0,r.kt)("h3",{id:"getbytagtag"},(0,r.kt)("inlineCode",{parentName:"h3"},"getByTag(tag)")),(0,r.kt)("p",null,"Returns all the services associated to a tag. If necessary, services are instantiated."),(0,r.kt)("h3",{id:"getallbindinds"},(0,r.kt)("inlineCode",{parentName:"h3"},"getAllBindinds()")),(0,r.kt)("p",null,"Returns all the bindings registered in the container."),(0,r.kt)("h3",{id:"loadcontainermodule"},(0,r.kt)("inlineCode",{parentName:"h3"},"load(containerModule)")),(0,r.kt)("p",null,"Loads a container module."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,r.kt)("h3",{id:"loadmetadatacontainermodulemetadata"},(0,r.kt)("inlineCode",{parentName:"h3"},"loadMetadata(containerModuleMetadata)")),(0,r.kt)("p",null,"Loads container module metadata"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,r.kt)("h3",{id:"unbindserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"unbind(serviceId)")),(0,r.kt)("p",null,"Unbinds a bound service by its id."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[3095],{9613:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>b});var a=n(9496);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?a.createElement(b,o(o({ref:t},s),{},{components:n})):a.createElement(b,o({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:r,o[1]=d;for(var c=2;c<i;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},6289:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=n(7366),r=(n(9496),n(9613));const i={sidebar_position:1,title:"Container API"},o=void 0,d={unversionedId:"api/container",id:"version-0.4.0/api/container",title:"Container API",description:"bind(type, options)",source:"@site/versioned_docs/version-0.4.0/api/container.md",sourceDirName:"api",slug:"/api/container",permalink:"/iocuak-docs/docs/0.4.0/api/container",draft:!1,tags:[],version:"0.4.0",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Container API"},sidebar:"sidebar",previous:{title:"Class metadata",permalink:"/iocuak-docs/docs/0.4.0/concepts/class-metadata"},next:{title:"injectable",permalink:"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator"}},l={},c=[{value:"<code>bind(type, options)</code>",id:"bindtype-options",level:3},{value:"<code>bindToValue(options)</code>",id:"bindtovalueoptions",level:3},{value:"<code>get(serviceId)</code>",id:"getserviceid",level:3},{value:"<code>getByTag(tag)</code>",id:"getbytagtag",level:3},{value:"<code>getAllBindinds()</code>",id:"getallbindinds",level:3},{value:"<code>load(containerModule)</code>",id:"loadcontainermodule",level:3},{value:"<code>loadMetadata(containerModuleMetadata)</code>",id:"loadmetadatacontainermodulemetadata",level:3},{value:"<code>unbind(serviceId)</code>",id:"unbindserviceid",level:3}],s={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"bindtype-options"},(0,r.kt)("inlineCode",{parentName:"h3"},"bind(type, options)")),(0,r.kt)("p",null,"Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"scope"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Binding scope to apply"),(0,r.kt)("td",{parentName:"tr",align:"center"},"BindingScope")))),(0,r.kt)("h3",{id:"bindtovalueoptions"},(0,r.kt)("inlineCode",{parentName:"h3"},"bindToValue(options)")),(0,r.kt)("p",null,"Binds a value. The options parameter is described as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Property"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"serviceId"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Service id to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"tags"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Tags to associate"),(0,r.kt)("td",{parentName:"tr",align:"center"},"number ","|"," string ","|"," symbol ","|"," (number ","|"," string ","|"," symbol)[]")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"value"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Value to bind"),(0,r.kt)("td",{parentName:"tr",align:"center"},"unknown")))),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values are always bound in singleton scope")),(0,r.kt)("h3",{id:"getserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"get(serviceId)")),(0,r.kt)("p",null,"Returns a service by its id. If necessary, the service is instantiated."),(0,r.kt)("p",null,"Consider the ",(0,r.kt)("a",{parentName:"p",href:"/iocuak-docs/docs/0.4.0/concepts/binding"},"binding")," page as reference to know more about instance details."),(0,r.kt)("h3",{id:"getbytagtag"},(0,r.kt)("inlineCode",{parentName:"h3"},"getByTag(tag)")),(0,r.kt)("p",null,"Returns all the services associated to a tag. If necessary, services are instantiated."),(0,r.kt)("h3",{id:"getallbindinds"},(0,r.kt)("inlineCode",{parentName:"h3"},"getAllBindinds()")),(0,r.kt)("p",null,"Returns all the bindings registered in the container."),(0,r.kt)("h3",{id:"loadcontainermodule"},(0,r.kt)("inlineCode",{parentName:"h3"},"load(containerModule)")),(0,r.kt)("p",null,"Loads a container module."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,r.kt)("h3",{id:"loadmetadatacontainermodulemetadata"},(0,r.kt)("inlineCode",{parentName:"h3"},"loadMetadata(containerModuleMetadata)")),(0,r.kt)("p",null,"Loads container module metadata"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n Container,\n ContainerModuleBindingService,\n ContainerModuleMetadata,\n} from '@cuaklabs/iocuak';\n\nimport { someContainerModuleMetadataDependency } from 'some/path';\n\nasync function entryPoint(): Promise<void> {\n const container: Container = Container.build();\n\n const containerModuleMetadata: ContainerModuleMetadata = {\n factory: (someServiceDependency: Dependency) => ({\n load: (containerModuleBindingService: ContainerModuleBindingService) => {\n containerModuleBindingService.bindToValue({\n serviceId: 'service-id',\n value: someServiceDependency.someValue,\n });\n }\n }),\n imports: [someContainerModuleMetadataDependency],\n injects: [Dependency],\n }\n\n await container.loadMetadata(containerModuleMetadata);\n}\n \n")),(0,r.kt)("h3",{id:"unbindserviceid"},(0,r.kt)("inlineCode",{parentName:"h3"},"unbind(serviceId)")),(0,r.kt)("p",null,"Unbinds a bound service by its id."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fe5baf42.6fc8c283.js b/assets/js/fe5baf42.dfc1bd29.js similarity index 98% rename from assets/js/fe5baf42.6fc8c283.js rename to assets/js/fe5baf42.dfc1bd29.js index 1134d43ad..c43c2b12e 100644 --- a/assets/js/fe5baf42.6fc8c283.js +++ b/assets/js/fe5baf42.dfc1bd29.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9118],{9613:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>y});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function d(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=p(a),u=r,y=l["".concat(c,".").concat(u)]||l[u]||m[u]||i;return a?n.createElement(y,o(o({ref:t},s),{},{components:a})):n.createElement(y,o({ref:t},s))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[l]="string"==typeof e?e:r,o[1]=d;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},9442:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=a(7366),r=(a(9496),a(9613));const i={sidebar_position:2,title:"Metadata provider"},o=void 0,d={unversionedId:"api/metadata/metadata-provider",id:"version-0.5.0/api/metadata/metadata-provider",title:"Metadata provider",description:"The MetadataProvider class is provided to easily extract metadata of a given type",source:"@site/versioned_docs/version-0.5.0/api/metadata/metadata-provider.md",sourceDirName:"api/metadata",slug:"/api/metadata/metadata-provider",permalink:"/iocuak-docs/docs/api/metadata/metadata-provider",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Metadata provider"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/api/metadata/introduction"}},c={},p=[{value:"<code>getBindingMetadata(type)</code>",id:"getbindingmetadatatype",level:2},{value:"<code>getClassMetadata(type)</code>",id:"getclassmetadatatype",level:2}],s={toc:p},l="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(l,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"MetadataProvider")," class is provided to easily extract metadata of a given type"),(0,r.kt)("h2",{id:"getbindingmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getBindingMetadata(type)")),(0,r.kt)("p",null,"Provides binding metadata associated to that type."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values (bound by ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.bindToValue()"),") do not have metadata directly associated. Those bindings can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.getAllBindings()"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);\n")),(0,r.kt)("h2",{id:"getclassmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getClassMetadata(type)")),(0,r.kt)("p",null,"Provides class metadata associated to that type."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[9118],{9613:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>y});var n=a(9496);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function d(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),l=p(a),u=r,y=l["".concat(c,".").concat(u)]||l[u]||m[u]||i;return a?n.createElement(y,o(o({ref:t},s),{},{components:a})):n.createElement(y,o({ref:t},s))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[l]="string"==typeof e?e:r,o[1]=d;for(var p=2;p<i;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},4485:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=a(7366),r=(a(9496),a(9613));const i={sidebar_position:2,title:"Metadata provider"},o=void 0,d={unversionedId:"api/metadata/metadata-provider",id:"version-0.5.0/api/metadata/metadata-provider",title:"Metadata provider",description:"The MetadataProvider class is provided to easily extract metadata of a given type",source:"@site/versioned_docs/version-0.5.0/api/metadata/metadata-provider.md",sourceDirName:"api/metadata",slug:"/api/metadata/metadata-provider",permalink:"/iocuak-docs/docs/api/metadata/metadata-provider",draft:!1,tags:[],version:"0.5.0",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Metadata provider"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/api/metadata/introduction"}},c={},p=[{value:"<code>getBindingMetadata(type)</code>",id:"getbindingmetadatatype",level:2},{value:"<code>getClassMetadata(type)</code>",id:"getclassmetadatatype",level:2}],s={toc:p},l="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(l,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"MetadataProvider")," class is provided to easily extract metadata of a given type"),(0,r.kt)("h2",{id:"getbindingmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getBindingMetadata(type)")),(0,r.kt)("p",null,"Provides binding metadata associated to that type."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Values (bound by ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.bindToValue()"),") do not have metadata directly associated. Those bindings can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"Container.getAllBindings()"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);\n")),(0,r.kt)("h2",{id:"getclassmetadatatype"},(0,r.kt)("inlineCode",{parentName:"h2"},"getClassMetadata(type)")),(0,r.kt)("p",null,"Provides class metadata associated to that type."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import {\n inject,\n injectable,\n BindingScope,\n ClassMetadata,\n MetadataProvider,\n TypeBinding,\n} from '@cuaklabs/iocuak';\n\nimport { dummyDummyServiceId, dummyFooServiceId } from 'some/path';\n\n@injectable({\n id: dummyDummyServiceId,\n scope: BindingScope.singleton,\n})\nclass Dummy {\n @inject(dummyFooServiceId)\n public foo: unknown;\n}\n\nconst metadataProvider: MetadataProvider = new MetadataProvider();\n\nconst classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ffc29198.02c8bbe6.js b/assets/js/ffc29198.c97b6302.js similarity index 98% rename from assets/js/ffc29198.02c8bbe6.js rename to assets/js/ffc29198.c97b6302.js index 2f726dbb5..e20c5e381 100644 --- a/assets/js/ffc29198.02c8bbe6.js +++ b/assets/js/ffc29198.c97b6302.js @@ -1 +1 @@ -"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5360],{9613:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},d=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=o,f=s["".concat(l,".").concat(m)]||s[m]||p[m]||i;return t?r.createElement(f,a(a({ref:n},d),{},{components:t})):r.createElement(f,a({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=m;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},3729:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Creating modules"},a=void 0,c={unversionedId:"tutorial/container-modules/creating-modules",id:"version-0.3.1/tutorial/container-modules/creating-modules",title:"Creating modules",description:"A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.",source:"@site/versioned_docs/version-0.3.1/tutorial/container-modules/creating-modules.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/creating-modules",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Creating modules"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction"},next:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata"}},l={},u=[],d={toc:u},s="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(s,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A container module declares a ",(0,o.kt)("inlineCode",{parentName:"p"},"load")," method receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleBindingService"),". This service allows us to bind types and values."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,o.kt)("p",null,"This way different service bindings can be grouped."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[5360],{9613:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(9496);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),u=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},d=function(e){var n=u(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=o,f=s["".concat(l,".").concat(m)]||s[m]||p[m]||i;return t?r.createElement(f,a(a({ref:n},d),{},{components:t})):r.createElement(f,a({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=m;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},3242:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(7366),o=(t(9496),t(9613));const i={sidebar_position:2,title:"Creating modules"},a=void 0,c={unversionedId:"tutorial/container-modules/creating-modules",id:"version-0.3.1/tutorial/container-modules/creating-modules",title:"Creating modules",description:"A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.",source:"@site/versioned_docs/version-0.3.1/tutorial/container-modules/creating-modules.md",sourceDirName:"tutorial/container-modules",slug:"/tutorial/container-modules/creating-modules",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules",draft:!1,tags:[],version:"0.3.1",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Creating modules"},sidebar:"sidebar",previous:{title:"Introduction",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction"},next:{title:"Loading modules from metadata",permalink:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata"}},l={},u=[],d={toc:u},s="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(s,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A container module declares a ",(0,o.kt)("inlineCode",{parentName:"p"},"load")," method receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"ContainerModuleBindingService"),". This service allows us to bind types and values."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';\n\nconst container: Container = Container.build();\n\nconst containerModule: ContainerModule = {\n load: (containerModuleBindingService: ContainerModuleBindingService): void => {\n containerModuleBindingService.bind(Dummy);\n },\n};\n\ncontainer.load(containerModule);\n")),(0,o.kt)("p",null,"This way different service bindings can be grouped."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.9f620483.js b/assets/js/main.9f620483.js new file mode 100644 index 000000000..504797c76 --- /dev/null +++ b/assets/js/main.9f620483.js @@ -0,0 +1,2 @@ +/*! For license information please see main.9f620483.js.LICENSE.txt */ +(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[179],{9592:(e,t,n)=>{var r={"./":1884};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=9592},23:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(9496),o=n(7366),a=n(3766),i=n.n(a),l=n(6887);const s={"0030fd86":[()=>n.e(1887).then(n.t.bind(n,7619,19)),"~docs/default/version-0-5-0-metadata-prop-3bc.json",7619],"028691c8":[()=>n.e(8129).then(n.bind(n,6490)),"@site/versioned_docs/version-0.3.1/concepts/class-metadata.md",6490],"05a46859":[()=>n.e(6943).then(n.bind(n,5136)),"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/creating-instances.md",5136],"08e8d5fd":[()=>n.e(2855).then(n.bind(n,6050)),"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/binding-a-service.md",6050],"0a1d241c":[()=>n.e(6334).then(n.bind(n,5291)),"@site/docs/concepts/container-module-metadata.md",5291],"0c8baa8f":[()=>n.e(7378).then(n.bind(n,582)),"@site/versioned_docs/version-0.5.0/api/injection/inject-tag-decorator.md",582],"0cb0b728":[()=>n.e(856).then(n.bind(n,5248)),"@site/versioned_docs/version-0.3.1/api/metadata/metadata-provider.md",5248],"158424f1":[()=>n.e(7094).then(n.bind(n,8460)),"@site/docs/tutorial/the-container-object/creating-instances.md",8460],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9666)),"@theme/DocItem",9666],"1a546ad0":[()=>n.e(4805).then(n.bind(n,5814)),"@site/docs/tutorial/container-modules/loading-modules-from-metadata.md",5814],"1b5e222d":[()=>n.e(4334).then(n.bind(n,1796)),"@site/versioned_docs/version-0.5.0/tutorial/container-modules/introduction.md",1796],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,7071)),"@theme/DocPage",7071],"1bff9566":[()=>n.e(5903).then(n.bind(n,6870)),"@site/versioned_docs/version-0.4.0/concepts/binding.md",6870],"1c5f3ec8":[()=>n.e(5121).then(n.bind(n,6719)),"@site/versioned_docs/version-0.4.0/tutorial/decorating-classes/inject-decorator.md",6719],"1df93b7f":[()=>Promise.all([n.e(532),n.e(3237)]).then(n.bind(n,4925)),"@site/src/pages/index.tsx",4925],23221674:[()=>n.e(3896).then(n.bind(n,6566)),"@site/versioned_docs/version-0.3.1/api/injection/inject-decorator.md",6566],"250fe880":[()=>n.e(9099).then(n.bind(n,3518)),"@site/versioned_docs/version-0.4.0/api/injection/inject-tag-decorator.md",3518],"263d6723":[()=>n.e(8721).then(n.bind(n,7008)),"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/binding-a-service.md",7008],"2a866bd1":[()=>n.e(3970).then(n.bind(n,3712)),"@site/docs/concepts/binding.md",3712],"2b7a7e79":[()=>n.e(2867).then(n.bind(n,4447)),"@site/versioned_docs/version-0.3.1/tutorial/decorating-classes/injectable-decorator.md",4447],"2da43288":[()=>n.e(2036).then(n.bind(n,8118)),"@site/versioned_docs/version-0.5.0/api/container.md",8118],"32336a78":[()=>n.e(5735).then(n.bind(n,5733)),"@site/docs/api/injection/injectFromBase-decorator.md",5733],33762072:[()=>n.e(7669).then(n.t.bind(n,2154,19)),"~docs/default/version-0-3-1-metadata-prop-266.json",2154],"3654fd5c":[()=>n.e(467).then(n.bind(n,7149)),"@site/docs/api/injection/inject-tag-decorator.md",7149],"3921882b":[()=>n.e(1149).then(n.bind(n,7661)),"@site/versioned_docs/version-0.4.0/api/injection/inject-decorator.md",7661],"3c73646c":[()=>n.e(3824).then(n.bind(n,2287)),"@site/docs/concepts/class-metadata.md",2287],"3d354aff":[()=>n.e(8141).then(n.bind(n,1444)),"@site/docs/tutorial/decorating-classes/injectable-decorator.md",1444],"4292aabd":[()=>n.e(1506).then(n.bind(n,1925)),"@site/versioned_docs/version-0.4.0/api/injection/injectable-decorator.md",1925],"429c1a5e":[()=>n.e(9435).then(n.bind(n,9418)),"@site/versioned_docs/version-0.3.1/tutorial/container-modules/loading-modules-from-metadata.md",9418],"4614d64c":[()=>n.e(9332).then(n.bind(n,8068)),"@site/docs/tutorial/the-container-object/introduction.md",8068],"49b0859b":[()=>n.e(6847).then(n.bind(n,3584)),"@site/versioned_docs/version-0.3.1/api/injection/injectFromBase-decorator.md",3584],"4b1346bc":[()=>n.e(6944).then(n.bind(n,2334)),"@site/versioned_docs/version-0.4.0/api/injection/injectFromBase-decorator.md",2334],"4b7058cd":[()=>n.e(7278).then(n.t.bind(n,5745,19)),"/home/runner/work/iocuak-docs/iocuak-docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"555e17e8":[()=>n.e(6052).then(n.bind(n,2726)),"@site/docs/tutorial/decorating-classes/inject-decorator.md",2726],"58d9cd49":[()=>n.e(7538).then(n.bind(n,9154)),"@site/versioned_docs/version-0.5.0/api/metadata/introduction.md",9154],"59a64286":[()=>n.e(2140).then(n.bind(n,4768)),"@site/docs/tutorial/introduction.md",4768],"5b54de31":[()=>n.e(378).then(n.bind(n,2855)),"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/creating-instances.md",2855],"5b645440":[()=>n.e(9128).then(n.bind(n,1908)),"@site/versioned_docs/version-0.4.0/tutorial/introduction.md",1908],"5c7e0021":[()=>n.e(1648).then(n.bind(n,3957)),"@site/versioned_docs/version-0.4.0/api/metadata/introduction.md",3957],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"6074383c":[()=>n.e(2344).then(n.bind(n,4379)),"@site/versioned_docs/version-0.5.0/tutorial/decorating-classes/inject-decorator.md",4379],"6254d461":[()=>n.e(5586).then(n.bind(n,1510)),"@site/docs/api/injection/injectable-decorator.md",1510],"6d4bebe7":[()=>n.e(9402).then(n.bind(n,8150)),"@site/versioned_docs/version-0.3.1/api/injection/inject-tag-decorator.md",8150],"70a4eefc":[()=>n.e(7722).then(n.bind(n,3604)),"@site/docs/api/metadata/metadata-provider.md",3604],"72b1f992":[()=>n.e(9823).then(n.t.bind(n,3769,19)),"/home/runner/work/iocuak-docs/iocuak-docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"7733bc07":[()=>n.e(2298).then(n.bind(n,5637)),"@site/docs/api/injection/inject-decorator.md",5637],"78ce0ec1":[()=>n.e(4651).then(n.bind(n,7040)),"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/introduction.md",7040],"7995d4bf":[()=>n.e(4678).then(n.bind(n,2888)),"@site/docs/tutorial/the-container-object/binding-a-service.md",2888],"79b7c907":[()=>n.e(2419).then(n.bind(n,7945)),"@site/docs/api/metadata/introduction.md",7945],"79e19905":[()=>n.e(513).then(n.bind(n,9738)),"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/creating-instances.md",9738],"7bd4b37f":[()=>n.e(9921).then(n.bind(n,8751)),"@site/versioned_docs/version-0.5.0/tutorial/decorating-classes/injectable-decorator.md",8751],"7be4df85":[()=>n.e(9688).then(n.bind(n,1261)),"@site/versioned_docs/version-0.5.0/tutorial/introduction.md",1261],"7d9bb284":[()=>n.e(4074).then(n.bind(n,477)),"@site/versioned_docs/version-0.4.0/tutorial/container-modules/loading-modules-from-metadata.md",477],"7e923665":[()=>n.e(2012).then(n.bind(n,2694)),"@site/docs/api/container.md",2694],"8044f45a":[()=>n.e(581).then(n.bind(n,6188)),"@site/versioned_docs/version-0.4.0/tutorial/container-modules/creating-modules.md",6188],"806df6bd":[()=>n.e(1899).then(n.bind(n,278)),"@site/docs/tutorial/container-modules/creating-modules.md",278],"8200b41e":[()=>n.e(9513).then(n.bind(n,7016)),"@site/versioned_docs/version-0.3.1/api/metadata/introduction.md",7016],"8767fd65":[()=>n.e(563).then(n.bind(n,5485)),"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/introduction.md",5485],"87f77671":[()=>n.e(5850).then(n.bind(n,668)),"@site/versioned_docs/version-0.4.0/concepts/class-metadata.md",668],"898848d2":[()=>n.e(5533).then(n.bind(n,5435)),"@site/versioned_docs/version-0.3.1/api/container.md",5435],"8b238a11":[()=>n.e(9519).then(n.bind(n,9813)),"@site/versioned_docs/version-0.5.0/tutorial/container-modules/creating-modules.md",9813],"8fa4da7f":[()=>n.e(6204).then(n.bind(n,9791)),"@site/versioned_docs/version-0.5.0/tutorial/container-modules/loading-modules-from-metadata.md",9791],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"98f3f66e":[()=>n.e(3347).then(n.bind(n,5244)),"@site/versioned_docs/version-0.3.1/tutorial/introduction.md",5244],"9dc3c96b":[()=>n.e(3695).then(n.bind(n,4833)),"@site/versioned_docs/version-0.5.0/api/injection/inject-decorator.md",4833],"9fbb8af0":[()=>n.e(8531).then(n.bind(n,2812)),"@site/versioned_docs/version-0.5.0/api/injection/injectFromBase-decorator.md",2812],ac95828e:[()=>n.e(3948).then(n.bind(n,2125)),"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/binding-a-service.md",2125],b0d4e835:[()=>n.e(5127).then(n.bind(n,3125)),"@site/versioned_docs/version-0.3.1/tutorial/container-modules/introduction.md",3125],b6b4f634:[()=>n.e(1391).then(n.bind(n,455)),"@site/versioned_docs/version-0.5.0/concepts/binding.md",455],bcaa6898:[()=>n.e(6206).then(n.bind(n,7356)),"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/introduction.md",7356],c47f43be:[()=>n.e(8884).then(n.bind(n,435)),"@site/versioned_docs/version-0.5.0/concepts/container-module-metadata.md",435],c5629734:[()=>n.e(3615).then(n.bind(n,9043)),"@site/versioned_docs/version-0.5.0/api/injection/injectable-decorator.md",9043],c8545ad7:[()=>n.e(5628).then(n.bind(n,3532)),"@site/versioned_docs/version-0.5.0/concepts/class-metadata.md",3532],caf8c733:[()=>n.e(9230).then(n.bind(n,6074)),"@site/versioned_docs/version-0.4.0/tutorial/decorating-classes/injectable-decorator.md",6074],db82a1c0:[()=>n.e(494).then(n.t.bind(n,2259,19)),"~docs/default/version-0-4-0-metadata-prop-913.json",2259],e1a62a5e:[()=>n.e(5389).then(n.bind(n,1891)),"@site/docs/tutorial/container-modules/introduction.md",1891],e3e01cfb:[()=>n.e(6024).then(n.bind(n,7566)),"@site/versioned_docs/version-0.4.0/api/metadata/metadata-provider.md",7566],e857c64f:[()=>n.e(1109).then(n.bind(n,6408)),"@site/versioned_docs/version-0.3.1/tutorial/decorating-classes/inject-decorator.md",6408],f1668c61:[()=>n.e(415).then(n.bind(n,3409)),"@site/versioned_docs/version-0.3.1/concepts/binding.md",3409],f29603b8:[()=>n.e(9323).then(n.bind(n,8823)),"@site/versioned_docs/version-0.4.0/tutorial/container-modules/introduction.md",8823],f5fb8451:[()=>n.e(1784).then(n.bind(n,3190)),"@site/versioned_docs/version-0.3.1/api/injection/injectable-decorator.md",3190],fa3fb5e6:[()=>n.e(3095).then(n.bind(n,6289)),"@site/versioned_docs/version-0.4.0/api/container.md",6289],fe5baf42:[()=>n.e(9118).then(n.bind(n,4485)),"@site/versioned_docs/version-0.5.0/api/metadata/metadata-provider.md",4485],ffc29198:[()=>n.e(5360).then(n.bind(n,3242)),"@site/versioned_docs/version-0.3.1/tutorial/container-modules/creating-modules.md",3242]};function c(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(8212),d=n(5752);function p(e,t){if("*"===e)return i()({loading:c,loader:()=>n.e(9697).then(n.bind(n,9697)),modules:["@theme/NotFound"],webpack:()=>[9697],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=l[`${e}-${t}`],p={},f=[],m=[],h=(0,u.Z)(a);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{a=a[e]})),a[l[l.length-1]]=o}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,o.Z)({},i,n)))}})}const f=[{path:"/iocuak-docs/docs/0.3.1",component:p("/iocuak-docs/docs/0.3.1","01a"),routes:[{path:"/iocuak-docs/docs/0.3.1/api/container",component:p("/iocuak-docs/docs/0.3.1/api/container","b89"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator",component:p("/iocuak-docs/docs/0.3.1/api/injection/inject-decorator","73b"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator",component:p("/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator","33c"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator",component:p("/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator","8f1"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator",component:p("/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator","d46"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/metadata/introduction",component:p("/iocuak-docs/docs/0.3.1/api/metadata/introduction","44d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider",component:p("/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider","409"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/concepts/binding",component:p("/iocuak-docs/docs/0.3.1/concepts/binding","2f1"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/concepts/class-metadata",component:p("/iocuak-docs/docs/0.3.1/concepts/class-metadata","670"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules",component:p("/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules","3ae"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction",component:p("/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction","603"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata",component:p("/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata","f1a"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator",component:p("/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator","411"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator",component:p("/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator","045"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/introduction",component:p("/iocuak-docs/docs/0.3.1/tutorial/introduction","743"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service",component:p("/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service","8fa"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances",component:p("/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances","b00"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction",component:p("/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction","563"),exact:!0,sidebar:"sidebar"}]},{path:"/iocuak-docs/docs/0.4.0",component:p("/iocuak-docs/docs/0.4.0","719"),routes:[{path:"/iocuak-docs/docs/0.4.0/api/container",component:p("/iocuak-docs/docs/0.4.0/api/container","80d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator",component:p("/iocuak-docs/docs/0.4.0/api/injection/inject-decorator","7ac"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator",component:p("/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator","912"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator",component:p("/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator","698"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator",component:p("/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator","045"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/metadata/introduction",component:p("/iocuak-docs/docs/0.4.0/api/metadata/introduction","2c6"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider",component:p("/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider","119"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/concepts/binding",component:p("/iocuak-docs/docs/0.4.0/concepts/binding","1f1"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/concepts/class-metadata",component:p("/iocuak-docs/docs/0.4.0/concepts/class-metadata","da0"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules",component:p("/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules","9df"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction",component:p("/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction","4c3"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata",component:p("/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata","506"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator",component:p("/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator","14f"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator",component:p("/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator","ca4"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/introduction",component:p("/iocuak-docs/docs/0.4.0/tutorial/introduction","39b"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service",component:p("/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service","646"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances",component:p("/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances","cad"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction",component:p("/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction","db5"),exact:!0,sidebar:"sidebar"}]},{path:"/iocuak-docs/docs/next",component:p("/iocuak-docs/docs/next","d32"),routes:[{path:"/iocuak-docs/docs/next/api/container",component:p("/iocuak-docs/docs/next/api/container","5e8"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/injection/inject-decorator",component:p("/iocuak-docs/docs/next/api/injection/inject-decorator","6f7"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/injection/inject-tag-decorator",component:p("/iocuak-docs/docs/next/api/injection/inject-tag-decorator","08d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/injection/injectable-decorator",component:p("/iocuak-docs/docs/next/api/injection/injectable-decorator","b88"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator",component:p("/iocuak-docs/docs/next/api/injection/injectFromBase-decorator","3fe"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/metadata/introduction",component:p("/iocuak-docs/docs/next/api/metadata/introduction","888"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/metadata/metadata-provider",component:p("/iocuak-docs/docs/next/api/metadata/metadata-provider","4a7"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/concepts/binding",component:p("/iocuak-docs/docs/next/concepts/binding","0d5"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/concepts/class-metadata",component:p("/iocuak-docs/docs/next/concepts/class-metadata","d4c"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/concepts/container-module-metadata",component:p("/iocuak-docs/docs/next/concepts/container-module-metadata","f07"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules",component:p("/iocuak-docs/docs/next/tutorial/container-modules/creating-modules","8cb"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/container-modules/introduction",component:p("/iocuak-docs/docs/next/tutorial/container-modules/introduction","70f"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata",component:p("/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata","734"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator",component:p("/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator","a82"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator",component:p("/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator","633"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/introduction",component:p("/iocuak-docs/docs/next/tutorial/introduction","a3d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service",component:p("/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service","acf"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances",component:p("/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances","b33"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/the-container-object/introduction",component:p("/iocuak-docs/docs/next/tutorial/the-container-object/introduction","d78"),exact:!0,sidebar:"sidebar"}]},{path:"/iocuak-docs/docs",component:p("/iocuak-docs/docs","ddf"),routes:[{path:"/iocuak-docs/docs/api/container",component:p("/iocuak-docs/docs/api/container","dff"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/injection/inject-decorator",component:p("/iocuak-docs/docs/api/injection/inject-decorator","b05"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/injection/inject-tag-decorator",component:p("/iocuak-docs/docs/api/injection/inject-tag-decorator","1a4"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/injection/injectable-decorator",component:p("/iocuak-docs/docs/api/injection/injectable-decorator","ecd"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/injection/injectFromBase-decorator",component:p("/iocuak-docs/docs/api/injection/injectFromBase-decorator","c13"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/metadata/introduction",component:p("/iocuak-docs/docs/api/metadata/introduction","b7b"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/metadata/metadata-provider",component:p("/iocuak-docs/docs/api/metadata/metadata-provider","3ed"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/concepts/binding",component:p("/iocuak-docs/docs/concepts/binding","85f"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/concepts/class-metadata",component:p("/iocuak-docs/docs/concepts/class-metadata","0f0"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/concepts/container-module-metadata",component:p("/iocuak-docs/docs/concepts/container-module-metadata","129"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/container-modules/creating-modules",component:p("/iocuak-docs/docs/tutorial/container-modules/creating-modules","797"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/container-modules/introduction",component:p("/iocuak-docs/docs/tutorial/container-modules/introduction","15d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata",component:p("/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata","740"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator",component:p("/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator","734"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator",component:p("/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator","e55"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/introduction",component:p("/iocuak-docs/docs/tutorial/introduction","92e"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service",component:p("/iocuak-docs/docs/tutorial/the-container-object/binding-a-service","975"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/the-container-object/creating-instances",component:p("/iocuak-docs/docs/tutorial/the-container-object/creating-instances","090"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/the-container-object/introduction",component:p("/iocuak-docs/docs/tutorial/the-container-object/introduction","ad6"),exact:!0,sidebar:"sidebar"}]},{path:"/iocuak-docs/",component:p("/iocuak-docs/","1eb"),exact:!0},{path:"*",component:p("*")}]},6439:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(9496);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},2733:(e,t,n)=>{"use strict";var r=n(9496),o=n(7995),a=n(8736),i=n(8663),l=n(9636);const s=[n(469),n(2815),n(11),n(6155)];var c=n(23),u=n(3442),d=n(1789);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7366),m=n(7812),h=n(4662),g=n(1989),b=n(163),v=n(2583),y=n(3721),k=n(3386),w=n(4095),E=n(5184);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),o=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,u.TH)();return e+(0,g.Z)(t)}(),a=t?`${n}${t}`:o;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:k.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(E.Z,{tag:w.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var L=n(6439),A=n(4395);function j(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),j("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?j("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=j("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const P=O,I="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${I}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${D}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[F]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:I}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=a[o];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(2182);function H(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement(q.Z,null,r.createElement(A.M,null,r.createElement(L.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(P,{location:T(t)},e)))))}var G=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(8212);const W=new Set,Y=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,X={prefetch(e){if(!(e=>!K()&&!Y.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!Y.has(e))(e)&&(Y.add(e),R(e))},Q=Object.freeze(X);if(l.Z.canUseDOM){window.docusaurus=Q;const e=o.hydrate;R(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},4395:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(9496),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/iocuak-docs/docs","versions":[{"name":"current","label":"Next","isLast":false,"path":"/iocuak-docs/docs/next","mainDocId":"tutorial/introduction","docs":[{"id":"api/container","path":"/iocuak-docs/docs/next/api/container","sidebar":"sidebar"},{"id":"api/injection/inject-decorator","path":"/iocuak-docs/docs/next/api/injection/inject-decorator","sidebar":"sidebar"},{"id":"api/injection/inject-tag-decorator","path":"/iocuak-docs/docs/next/api/injection/inject-tag-decorator","sidebar":"sidebar"},{"id":"api/injection/injectable-decorator","path":"/iocuak-docs/docs/next/api/injection/injectable-decorator","sidebar":"sidebar"},{"id":"api/injection/injectFromBase-decorator","path":"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator","sidebar":"sidebar"},{"id":"api/metadata/introduction","path":"/iocuak-docs/docs/next/api/metadata/introduction","sidebar":"sidebar"},{"id":"api/metadata/metadata-provider","path":"/iocuak-docs/docs/next/api/metadata/metadata-provider","sidebar":"sidebar"},{"id":"concepts/binding","path":"/iocuak-docs/docs/next/concepts/binding","sidebar":"sidebar"},{"id":"concepts/class-metadata","path":"/iocuak-docs/docs/next/concepts/class-metadata","sidebar":"sidebar"},{"id":"concepts/container-module-metadata","path":"/iocuak-docs/docs/next/concepts/container-module-metadata","sidebar":"sidebar"},{"id":"tutorial/container-modules/creating-modules","path":"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules","sidebar":"sidebar"},{"id":"tutorial/container-modules/introduction","path":"/iocuak-docs/docs/next/tutorial/container-modules/introduction","sidebar":"sidebar"},{"id":"tutorial/container-modules/loading-modules-from-metadata","path":"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/inject-decorator","path":"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/injectable-decorator","path":"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator","sidebar":"sidebar"},{"id":"tutorial/introduction","path":"/iocuak-docs/docs/next/tutorial/introduction","sidebar":"sidebar"},{"id":"tutorial/the-container-object/binding-a-service","path":"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service","sidebar":"sidebar"},{"id":"tutorial/the-container-object/creating-instances","path":"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances","sidebar":"sidebar"},{"id":"tutorial/the-container-object/introduction","path":"/iocuak-docs/docs/next/tutorial/the-container-object/introduction","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/iocuak-docs/docs/next/tutorial/introduction","label":"tutorial/introduction"}}}},{"name":"0.5.0","label":"0.5.0","isLast":true,"path":"/iocuak-docs/docs","mainDocId":"tutorial/introduction","docs":[{"id":"api/container","path":"/iocuak-docs/docs/api/container","sidebar":"sidebar"},{"id":"api/injection/inject-decorator","path":"/iocuak-docs/docs/api/injection/inject-decorator","sidebar":"sidebar"},{"id":"api/injection/inject-tag-decorator","path":"/iocuak-docs/docs/api/injection/inject-tag-decorator","sidebar":"sidebar"},{"id":"api/injection/injectable-decorator","path":"/iocuak-docs/docs/api/injection/injectable-decorator","sidebar":"sidebar"},{"id":"api/injection/injectFromBase-decorator","path":"/iocuak-docs/docs/api/injection/injectFromBase-decorator","sidebar":"sidebar"},{"id":"api/metadata/introduction","path":"/iocuak-docs/docs/api/metadata/introduction","sidebar":"sidebar"},{"id":"api/metadata/metadata-provider","path":"/iocuak-docs/docs/api/metadata/metadata-provider","sidebar":"sidebar"},{"id":"concepts/binding","path":"/iocuak-docs/docs/concepts/binding","sidebar":"sidebar"},{"id":"concepts/class-metadata","path":"/iocuak-docs/docs/concepts/class-metadata","sidebar":"sidebar"},{"id":"concepts/container-module-metadata","path":"/iocuak-docs/docs/concepts/container-module-metadata","sidebar":"sidebar"},{"id":"tutorial/container-modules/creating-modules","path":"/iocuak-docs/docs/tutorial/container-modules/creating-modules","sidebar":"sidebar"},{"id":"tutorial/container-modules/introduction","path":"/iocuak-docs/docs/tutorial/container-modules/introduction","sidebar":"sidebar"},{"id":"tutorial/container-modules/loading-modules-from-metadata","path":"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/inject-decorator","path":"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/injectable-decorator","path":"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator","sidebar":"sidebar"},{"id":"tutorial/introduction","path":"/iocuak-docs/docs/tutorial/introduction","sidebar":"sidebar"},{"id":"tutorial/the-container-object/binding-a-service","path":"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service","sidebar":"sidebar"},{"id":"tutorial/the-container-object/creating-instances","path":"/iocuak-docs/docs/tutorial/the-container-object/creating-instances","sidebar":"sidebar"},{"id":"tutorial/the-container-object/introduction","path":"/iocuak-docs/docs/tutorial/the-container-object/introduction","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/iocuak-docs/docs/tutorial/introduction","label":"version-0.5.0/tutorial/introduction"}}}},{"name":"0.4.0","label":"0.4.0","isLast":false,"path":"/iocuak-docs/docs/0.4.0","mainDocId":"tutorial/introduction","docs":[{"id":"api/container","path":"/iocuak-docs/docs/0.4.0/api/container","sidebar":"sidebar"},{"id":"api/injection/inject-decorator","path":"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator","sidebar":"sidebar"},{"id":"api/injection/inject-tag-decorator","path":"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator","sidebar":"sidebar"},{"id":"api/injection/injectable-decorator","path":"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator","sidebar":"sidebar"},{"id":"api/injection/injectFromBase-decorator","path":"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator","sidebar":"sidebar"},{"id":"api/metadata/introduction","path":"/iocuak-docs/docs/0.4.0/api/metadata/introduction","sidebar":"sidebar"},{"id":"api/metadata/metadata-provider","path":"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider","sidebar":"sidebar"},{"id":"concepts/binding","path":"/iocuak-docs/docs/0.4.0/concepts/binding","sidebar":"sidebar"},{"id":"concepts/class-metadata","path":"/iocuak-docs/docs/0.4.0/concepts/class-metadata","sidebar":"sidebar"},{"id":"tutorial/container-modules/creating-modules","path":"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules","sidebar":"sidebar"},{"id":"tutorial/container-modules/introduction","path":"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction","sidebar":"sidebar"},{"id":"tutorial/container-modules/loading-modules-from-metadata","path":"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/inject-decorator","path":"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/injectable-decorator","path":"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator","sidebar":"sidebar"},{"id":"tutorial/introduction","path":"/iocuak-docs/docs/0.4.0/tutorial/introduction","sidebar":"sidebar"},{"id":"tutorial/the-container-object/binding-a-service","path":"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service","sidebar":"sidebar"},{"id":"tutorial/the-container-object/creating-instances","path":"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances","sidebar":"sidebar"},{"id":"tutorial/the-container-object/introduction","path":"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/iocuak-docs/docs/0.4.0/tutorial/introduction","label":"version-0.4.0/tutorial/introduction"}}}},{"name":"0.3.1","label":"0.3.1","isLast":false,"path":"/iocuak-docs/docs/0.3.1","mainDocId":"tutorial/introduction","docs":[{"id":"api/container","path":"/iocuak-docs/docs/0.3.1/api/container","sidebar":"sidebar"},{"id":"api/injection/inject-decorator","path":"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator","sidebar":"sidebar"},{"id":"api/injection/inject-tag-decorator","path":"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator","sidebar":"sidebar"},{"id":"api/injection/injectable-decorator","path":"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator","sidebar":"sidebar"},{"id":"api/injection/injectFromBase-decorator","path":"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator","sidebar":"sidebar"},{"id":"api/metadata/introduction","path":"/iocuak-docs/docs/0.3.1/api/metadata/introduction","sidebar":"sidebar"},{"id":"api/metadata/metadata-provider","path":"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider","sidebar":"sidebar"},{"id":"concepts/binding","path":"/iocuak-docs/docs/0.3.1/concepts/binding","sidebar":"sidebar"},{"id":"concepts/class-metadata","path":"/iocuak-docs/docs/0.3.1/concepts/class-metadata","sidebar":"sidebar"},{"id":"tutorial/container-modules/creating-modules","path":"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules","sidebar":"sidebar"},{"id":"tutorial/container-modules/introduction","path":"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction","sidebar":"sidebar"},{"id":"tutorial/container-modules/loading-modules-from-metadata","path":"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/inject-decorator","path":"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/injectable-decorator","path":"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator","sidebar":"sidebar"},{"id":"tutorial/introduction","path":"/iocuak-docs/docs/0.3.1/tutorial/introduction","sidebar":"sidebar"},{"id":"tutorial/the-container-object/binding-a-service","path":"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service","sidebar":"sidebar"},{"id":"tutorial/the-container-object/creating-instances","path":"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances","sidebar":"sidebar"},{"id":"tutorial/the-container-object/introduction","path":"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/iocuak-docs/docs/0.3.1/tutorial/introduction","label":"version-0.3.1/tutorial/introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"}}}'),c={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},u=r.createContext(c);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:c},t)}},2182:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(9496),o=n(9636),a=n(7812),i=n(1947),l=n(2739);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(c,{error:t}))}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function u(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},9636:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7812:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496),o=n(8663);function a(e){return r.createElement(o.ql,e)}},4603:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7366),o=n(9496),a=n(8736),i=n(1947),l=n(4662),s=n(6767),c=n(9636);const u=o.createContext({collectLink:()=>{}});var d=n(1989);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:k}}=(0,l.Z)(),{withBaseUrl:w}=(0,d.C)(),E=(0,o.useContext)(u),S=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>S.current));const x=p||f;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(L=C,b&&(e=>e.startsWith("/"))(L)?w(L):L):void 0;var L;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:k}));const A=(0,o.useRef)(!1),j=n?a.OL:a.rU,N=c.Z.canUseIntersectionObserver,R=(0,o.useRef)(),O=()=>{A.current||null==T||(window.docusaurus.preload(T),A.current=!0)};(0,o.useEffect)((()=>(!N&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&R.current&&R.current.disconnect()})),[R,T,N,_]);const P=T?.startsWith("#")??!1,I=!T||!_||P;return I||g||E.collectLink(T),I?o.createElement("a",(0,r.Z)({ref:S,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):o.createElement(j,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,N&&e&&_&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),R.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const f=o.forwardRef(p)},2093:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=()=>null},9681:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(9496);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return a[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,o(l,a))}},8611:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},6767:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},1989:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(9496),o=n(4662),a=n(6767);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},4662:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496),o=n(4395);function a(){return(0,r.useContext)(o._)}},6694:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496),o=n(6439);function a(){return(0,r.useContext)(o._)}},8212:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},5752:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(9496);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},9222:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>p,_r:()=>u,Jo:()=>g,zh:()=>d,yW:()=>m,gB:()=>f});var r=n(3442),o=n(4662),a=n(8611);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function h(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},3766:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return 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},i.apply(this,arguments)}var l=n(9496),s=n(507),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),a(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}a(g,"propTypes",{report:s.func.isRequired}),a(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},11:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(9981),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},2815:(e,t,n)=>{"use strict";n.r(t);var r=n(999),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(9592)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},6200:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496);const o={iconExternalLink:"iconExternalLink_jIwi"};function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},2739:(e,t,n)=>{"use strict";n.d(t,{Z:()=>dt});var r=n(9496),o=n(5924),a=n(2182),i=n(2583),l=n(7366),s=n(3442),c=n(9681),u=n(4857);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,c.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:o}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:o}),t))}var g=n(5228),b=n(3386);const v={skipToContent:"skipToContent_FWgj"};function y(){return r.createElement(h,{className:v.skipToContent})}var k=n(163),w=n(6853);function E(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_Hn4z"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,c.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.Z)("clean-btn close",S.closeButton,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_Tgtk"};function C(e){const{announcementBar:t}=(0,k.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,o.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_AKjL",announcementBarPlaceholder:"announcementBarPlaceholder__bmq",announcementBarClose:"announcementBarClose_BiZz",announcementBarContent:"announcementBarContent_p9m5"};function L(){const{announcementBar:e}=(0,k.L)(),{isActive:t,close:n}=(0,w.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var A=n(4155),j=n(2428);var N=n(4327),R=n(9471);const O=r.createContext(null);function P(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,R.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,N.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return r.createElement(O.Provider,{value:n},t)}function I(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function D(){const e=(0,r.useContext)(O);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:I(a)})),[o,a,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:a}=e;const{shown:i}=D();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var F=n(8382),B=n(6694);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_Xqq4",toggleButton:"toggleButton_CURL",darkToggleIcon:"darkToggleIcon_YNUG",lightToggleIcon:"lightToggleIcon_tmUv",toggleButtonDisabled:"toggleButtonDisabled_Le21"};function q(e){let{className:t,buttonClassName:n,value:a,onChange:i}=e;const l=(0,B.Z)(),s=(0,c.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===a?(0,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.Z)($.toggle,t)},r.createElement("button",{className:(0,o.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===a?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,o.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,o.Z)($.toggleIcon,$.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_GEVX"};function Z(e){let{className:t}=e;const n=(0,k.L)().navbar.style,o=(0,k.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,F.I)();return o?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:a,onChange:i})}var V=n(5400);function W(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Y(){const e=(0,A.e)();return r.createElement("button",{type:"button","aria-label":(0,c.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(E,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(Y,null))}var X=n(4603),Q=n(1989),J=n(6767);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(6200);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:a,label:i,html:s,isDropdownLink:c,prependBaseUrlToHref:u,...d}=e;const p=(0,Q.Z)(o),f=(0,Q.Z)(t),m=(0,Q.Z)(a,{forcePrependBaseUrl:!0}),h=i&&a&&!(0,J.Z)(a),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,c&&{width:12,height:12}))};return a?r.createElement(X.Z,(0,l.Z)({href:u?m:a},d,g)):r.createElement(X.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...a}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},a));return n?r.createElement("li",null,i):i}function oe(e){let{className:t,isDropdownItem:n,...a}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,o.Z)("menu__link",t)},a)))}function ae(e){let{mobile:t=!1,position:n,...o}=e;const a=t?oe:re;return r.createElement(a,(0,l.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(1930),le=n(8275),se=n(4662);function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const c=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[c]),r.createElement("div",{ref:c,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:s.to?void 0:"#",className:(0,o.Z)("navbar__link",a)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(xe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:a,onClick:i,...c}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},c,{onClick:e=>{e.preventDefault(),f()}}),c.children??c.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(xe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const o=t?de:ue;return r.createElement(o,n)}var fe=n(3721);function me(e){let{width:t=20,height:n=20,...o}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage__gi4";var ge=n(2093);const be={searchBox:"searchBox_MNsY"};function ve(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.Z)(n,be.searchBox)},t)}var ye=n(9222),ke=n(8796);var we=n(808);const Ee=e=>e.docs.find((t=>t.id===e.mainDocId));const Se={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...a}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...o],g=t?(0,c.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,l.Z)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(ve,{className:n},r.createElement(ge.Z,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,o.Z)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,ye.Iw)(o),s=(0,ke.vY)(t,o);return null===s?null:r.createElement(ae,(0,l.Z)({exact:!0},a,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,ye.Iw)(o),s=(0,ke.oz)(t,o).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(ae,(0,l.Z)({exact:!0},a,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...a}=e;const i=(0,ke.lO)(o)[0],s=t??i.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(ae,(0,l.Z)({},a,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:a,dropdownItemsAfter:i,...u}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,ye.Iw)(n),m=(0,ye.gB)(n),{savePreferredVersionName:h}=(0,we.J)(n),g=[...a,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Ee(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,ke.lO)(n)[0],v=t&&g.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ee(b).path;return g.length<=1?r.createElement(ae,(0,l.Z)({},u,{mobile:t,label:v,to:y,isActive:o?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},u,{mobile:t,label:v,to:y,items:g,isActive:o?()=>!1:void 0}))}};function xe(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Se[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}function _e(){const e=(0,A.e)(),t=(0,k.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(xe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ce(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(c.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Te(){const e=0===(0,k.L)().navbar.items.length,t=D();return r.createElement(r.Fragment,null,!e&&r.createElement(Ce,{onClick:()=>t.hide()}),t.content)}function Le(){const e=(0,A.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(M,{header:r.createElement(K,null),primaryMenu:r.createElement(_e,null),secondaryMenu:r.createElement(Te,null)}):null}const Ae={navbarHideable:"navbarHideable_fXWX",navbarHidden:"navbarHidden_v5Yw"};function je(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,o.Z)("navbar-sidebar__backdrop",e.className)}))}function Ne(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,k.L)(),i=(0,A.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,j.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-a.current,c=window.innerHeight;l&&i>=l?n(!1):i+c<s&&n(!0)})),(0,u.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,c.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Ae.navbarHideable,!s&&Ae.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown})},t,r.createElement(je,{onClick:i.toggle}),r.createElement(Le,null))}var Re=n(1947);const Oe={errorBoundaryError:"errorBoundaryError_Lq0i"};function Pe(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(c.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function Ie(e){let{error:t}=e;const n=(0,Re.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Oe.errorBoundaryError},n)}class De extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Me="right";function Fe(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,l.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Be(){const{toggle:e,shown:t}=(0,A.e)();return r.createElement("button",{onClick:e,"aria-label":(0,c.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Fe,null))}const ze={colorModeToggle:"colorModeToggle_z0Ih"};function Ue(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(De,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(xe,e)))))}function $e(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function qe(){const e=(0,A.e)(),t=(0,k.L)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??Me)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return r.createElement($e,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Be,null),r.createElement(W,null),r.createElement(Ue,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Ue,{items:o}),r.createElement(Z,{className:ze.colorModeToggle}),!a&&r.createElement(ve,null,r.createElement(ge.Z,null)))})}function He(){return r.createElement(Ne,null,r.createElement(qe,null))}function Ge(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...s}=t,c=(0,Q.Z)(n),u=(0,Q.Z)(o,{forcePrependBaseUrl:!0});return r.createElement(X.Z,(0,l.Z)({className:"footer__link-item"},o?{href:i?u:o}:{to:c},s),a,o&&!(0,J.Z)(o)&&r.createElement(te.Z,null))}function Ze(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Ge,{item:t}))}function Ve(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(Ze,{key:t,item:e})))))}function We(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Ve,{key:t,column:e}))))}function Ye(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function Ke(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Ge,{item:t})}function Xe(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(Ke,{item:e}),t.length!==n+1&&r.createElement(Ye,null))))))}function Qe(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(We,{columns:t}):r.createElement(Xe,{links:t})}var Je=n(9288);const et={footerLogoLink:"footerLogoLink_mr6Y"};function tt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,Q.C)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(Je.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function nt(e){let{logo:t}=e;return t.href?r.createElement(X.Z,{href:t.href,className:et.footerLogoLink,target:t.target},r.createElement(tt,{logo:t})):r.createElement(tt,{logo:t})}function rt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function at(){const{footer:e}=(0,k.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement(ot,{style:a,links:n&&n.length>0&&r.createElement(Qe,{links:n}),logo:o&&r.createElement(nt,{logo:o}),copyright:t&&r.createElement(rt,{copyright:t})})}const it=r.memo(at),lt=(0,N.Qc)([F.S,w.pl,j.OC,we.L5,i.VC,function(e){let{children:t}=e;return r.createElement(R.n2,null,r.createElement(A.M,null,r.createElement(P,null,t)))}]);function st(e){let{children:t}=e;return r.createElement(lt,null,t)}function ct(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(c.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Pe,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(Ie,{error:t})))))}const ut={mainWrapper:"mainWrapper_BOxT"};function dt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:c}=e;return(0,b.t)(),r.createElement(st,null,r.createElement(i.d,{title:s,description:c}),r.createElement(y,null),r.createElement(L,null),r.createElement(He,null),r.createElement("div",{id:d,className:(0,o.Z)(g.k.wrapper.main,ut.mainWrapper,l)},r.createElement(a.Z,{fallback:e=>r.createElement(ct,e)},t)),!n&&r.createElement(it,null))}},5400:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7366),o=n(9496),a=n(4603),i=n(1989),l=n(4662),s=n(163),c=n(9288);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=o.createElement(c.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:c}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)(c?.href||"/"),h=n?"":t,g=c?.alt??h;return o.createElement(a.Z,(0,r.Z)({to:m},f,c?.target&&{target:c.target}),c&&o.createElement(u,{logo:c,alt:g,imageClassName:d}),null!=n&&o.createElement("b",{className:p},n))}},5184:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496),o=n(7812);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},9288:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7366),o=n(9496),a=n(5924),i=n(6694),l=n(8382);const s={themedImage:"themedImage_mt67","themedImage--light":"themedImage--light_fX3w","themedImage--dark":"themedImage--dark_uZcq"};function c(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:c,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,f.map((e=>o.createElement("img",(0,r.Z)({key:e,src:c[e],alt:d,className:(0,a.Z)(s.themedImage,s[`themedImage--${e}`],u)},p)))))}},1930:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7366),o=n(9496),a=n(9636),i=n(9494);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(t??!1),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const c={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?c:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return d(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!a.Z.canUseDOM)return e?c:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const c=(0,o.useRef)(null);return p({collapsibleRef:c,collapsed:n,animation:a}),o.createElement(t,{ref:c,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(c.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[l,s]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&s(t)}),[a,t]),a?o.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return o.createElement(r,n)}},6853:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(9496),o=n(6694),a=n(669),i=n(4327),l=n(163);const s=(0,a.WA)("docusaurus.announcement.dismiss"),c=(0,a.WA)("docusaurus.announcement.id"),u=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{a(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&d(!1),!r&&u()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},8382:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(9496),o=n(9636),a=n(4327),i=n(669),l=n(163);const s=r.createContext(void 0),c="theme",u=(0,i.WA)(c),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{u.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,a]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=u.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[o,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},808:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g});var r=n(9496),o=n(9222),a=n(8611),i=n(163),l=n(8796),s=n(4327),c=n(669);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,c.WA)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(u(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},7813:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(9496),o=n(4327);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},4155:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(9496),o=n(9471),a=n(28),i=n(3442),l=(n(4241),n(4327));function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(163);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,c.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const u=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function p(e){let{children:t}=e;const n=d();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},9471:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(9496),o=n(4327);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},3386:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(9496);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},28:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(9496),o=n(9636);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return o.Z.canUseDOM?window.innerWidth>i?a.desktop:a.mobile:a.ssr}const s=!1;function c(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5228:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},9494:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},8796:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>h,cE:()=>d,hI:()=>w,lO:()=>v,vY:()=>k,oz:()=>y,s1:()=>b});var r=n(9496),o=n(3442),a=n(1789),i=n(9222),l=n(808),s=n(7813);function c(e){return Array.from(new Set(e))}var u=n(8275);const d=!!i._r;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const f=(e,t)=>void 0!==e&&(0,u.Mg)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||m(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,u.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,u.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function b(){const e=(0,s.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?g({sidebarItems:e.items,pathname:t}):null}function v(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,o].filter(Boolean))),[t,n,o])}function y(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function k(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function w(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,l=i.find((e=>(0,o.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,c=s?n.docsSidebars[s]:void 0;return{docElement:(0,a.H)(i),sidebarName:s,sidebarItems:c}}},2583:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var r=n(9496),o=n(5924),a=n(7812),i=n(5752);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(1989),c=n(4662);function u(e){let{title:t,description:n,keywords:o,image:i,children:l}=e;const u=function(e){const{siteConfig:t}=(0,c.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,o.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,o.Z)(a,i)},t)}},4327:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>c,Ql:()=>s,i6:()=>l,zX:()=>a});var r=n(9496);const o=n(9636).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8275:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(9496),o=n(23),a=n(4662);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2428:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d});var r=n(9496),o=n(9636),a=n(6694),i=n(4327);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function c(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),o=(0,r.useRef)(u()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},4095:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>o});n(4662);const r="default";function o(e,t){return`docs-${e}-${t}`}},669:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(9496),n(4241);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},3721:(e,t,n)=>{"use strict";n.d(t,{l:()=>a});var r=n(4662),o=n(3442);function a(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:a}}=(0,r.Z)(),{pathname:i}=(0,o.TH)(),l=a===n?e:e.replace(`/${a}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:o}=e;return`${o?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},4857:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(9496),o=n(3442),a=n(4327);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},163:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(4662);function o(){return(0,r.Z)().siteConfig.themeConfig}},4766:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},849:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},1947:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(4766);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(849);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},5924:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}n.d(t,{Z:()=>o});const o=function(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},4047:(e,t,n)=>{"use strict";n.d(t,{lX:()=>k,q_:()=>C,ob:()=>f,PP:()=>L,Ep:()=>p});var r=n(7366);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&o(e),s=t&&o(t),c=l||s;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8624);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function k(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,k=void 0!==c&&c,w=i.getUserConfirmation,E=void 0===w?g:w,S=i.keyLength,x=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return _&&(a=u(a,_)),f(a,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var L=m();function A(e){(0,r.Z)(U,e),U.length=n.length,L.notifyListeners(U.location,U.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function N(){O(C(y()))}var R=!1;function O(e){if(R)R=!1,A();else{L.confirmTransitionTo(e,"POP",E,(function(t){t?A({action:"POP",location:e}):function(e){var t=U.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(R=!0,M(o))}(e)}))}}var P=C(y()),I=[P.key];function D(e){return _+p(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(b,j),a&&window.addEventListener(v,N)):0===F&&(window.removeEventListener(b,j),a&&window.removeEventListener(v,N))}var z=!1;var U={length:n.length,action:"POP",location:P,createHref:D,push:function(e,t){var r="PUSH",a=f(e,t,T(),U.location);L.confirmTransitionTo(a,r,E,(function(e){if(e){var t=D(a),i=a.key,l=a.state;if(o)if(n.pushState({key:i,state:l},null,t),k)window.location.href=t;else{var s=I.indexOf(U.location.key),c=I.slice(0,s+1);c.push(a.key),I=c,A({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,T(),U.location);L.confirmTransitionTo(a,r,E,(function(e){if(e){var t=D(a),i=a.key,l=a.state;if(o)if(n.replaceState({key:i,state:l},null,t),k)window.location.replace(t);else{var s=I.indexOf(U.location.key);-1!==s&&(I[s]=a.key),A({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=L.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=L.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var w="hashchange",E={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?g:o,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=E[c],y=v.encodePath,k=v.decodePath;function C(){var e=k(x());return b&&(e=u(e,b)),f(e)}var T=m();function L(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var A=!1,j=null;function N(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var o=C(),i=z.location;if(!A&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===p(o))return;j=null,function(e){if(A)A=!1,L();else{var t="POP";T.confirmTransitionTo(e,t,a,(function(n){n?L({action:t,location:e}):function(e){var t=z.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(A=!0,D(o))}(e)}))}}(o)}}var R=x(),O=y(R);R!==O&&_(O);var P=C(),I=[p(P)];function D(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(w,N):0===M&&window.removeEventListener(w,N)}var B=!1;var z={length:t.length,action:"POP",location:P,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);if(x()!==o){j=t,function(e){window.location.hash=e}(o);var a=I.lastIndexOf(p(z.location)),i=I.slice(0,a+1);i.push(t),I=i,L({action:n,location:r})}else L()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);x()!==o&&(j=t,_(o));var a=I.indexOf(p(z.location));-1!==a&&(I[a]=t),L({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function L(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,c=void 0===s?6:s,u=m();function d(e){(0,r.Z)(k,e),k.length=k.entries.length,u.notifyListeners(k.location,k.action)}function h(){return Math.random().toString(36).substr(2,c)}var g=T(l,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(k.index+e,0,k.entries.length-1),r=k.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var k={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",o=f(e,t,h(),k.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=k.index+1,n=k.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),k.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(k.entries[k.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=k.index+e;return t>=0&&t<k.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return k}},2535:(e,t,n)=>{"use strict";var r=n(6237),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},3670:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},901:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},469:(e,t,n)=>{"use strict";n.r(t)},6155:(e,t,n)=>{"use strict";n.r(t)},9981:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},2767:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var a,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var c in a=Object(arguments[s]))n.call(a,c)&&(l[c]=a[c]);if(t){i=t(a);for(var u=0;u<i.length;u++)r.call(a,i[u])&&(l[i[u]]=a[i[u]])}}return l}},7720:(e,t,n)=>{var r=n(901);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],k=n[7];l&&(r.push(l),l="");var w=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||u,_=b||v;r.push({name:g||a++,prefix:h||"",delimiter:x,optional:S,repeat:E,partial:w,asterisk:!!k,pattern:_?c(_):k?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",l=t||{},s=(o||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=l[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",l=0;l<e.length;l++){var c=e[l];if("string"==typeof c)i+=s(c);else{var p=s(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var l in a)if(a.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=a[l])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],o||l);var s=t[l],c=r.util.type(s);"Object"!==c||a[i(s)]?"Array"!==c||a[i(s)]||(a[i(s)]=!0,e(s,n,l,a)):(a[i(s)]=!0,e(s,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new l;return s(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,l,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var k=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,k+"g")}for(var w=h.pattern||h,E=l.next,S=u;E!==t.tail&&!(d&&S>=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof o)){var _,C=1;if(v){if(!(_=a(w,S,e,b))||_.index>=e.length)break;var T=_.index,L=_.index+_[0].length,A=S;for(A+=E.value.length;T>=A;)A+=(E=E.next).value.length;if(S=A-=E.value.length,E.value instanceof o)continue;for(var j=E;j!==t.tail&&(A<L||"string"==typeof j.value);j=j.next)C++,A+=j.value.length;C--,x=e.slice(S,A),_.index-=S}else if(!(_=a(w,0,x,b)))continue;T=_.index;var N=_[0],R=x.slice(0,T),O=x.slice(T+N.length),P=S+x.length;d&&P>d.reach&&(d.reach=P);var I=E.prev;if(R&&(I=s(t,I,R),S+=R.length),c(t,I,C),E=s(t,I,new o(p,g?r.tokenize(N,g):N,y,N)),O&&s(t,E,O),C>1){var D={cause:p+","+m,reach:P};i(e,t,n,E.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var l="";for(var s in a.attributes)l+=" "+s+'="'+(a.attributes[s]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+l+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var l=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],c=/language-(.+)/.exec(a);if(c){n=c[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),o.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var c=t[s];"variable"===c.type&&o.indexOf(c.content)>=0&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))o++;else if(r.test(l)&&0===--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function c(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,s(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var s=a.substring(0,l),d=c(u[o]),f=a.substring(l+o.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),c=l.alias,d=Array.isArray(c)?c[0]:c,f=e.languages[d];if(!f)continue;i[1]=u(s,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&l(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(o>=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},1064:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},1884:(e,t,n)=>{const r=n(1064),o=n(6474),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(2928).resolve(t)],delete Prism.languages[e],n(2928)(t),a.add(e)}))}i.silent=!1,e.exports=i},2928:(e,t,n)=>{var r={"./":1884};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=2928},6474:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var l={},s=e[r];if(s){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(s),m=u;o(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var k={getIds:function(){var e=[];return k.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var u in n)c(u);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,u,t,n)}};return k}}();e.exports=t},4049:(e,t,n)=>{"use strict";var r=n(6257);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},507:(e,t,n)=>{e.exports=n(4049)()},6257:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},7439:(e,t,n)=>{"use strict";var r=n(9496),o=n(2767),a=n(8051);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function c(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function k(e,t,n,r){var o=b.hasOwnProperty(t)?b[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=60103,S=60106,x=60107,_=60108,C=60114,T=60109,L=60110,A=60112,j=60113,N=60120,R=60115,O=60116,P=60121,I=60128,D=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;E=B("react.element"),S=B("react.portal"),x=B("react.fragment"),_=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),L=B("react.context"),A=B("react.forward_ref"),j=B("react.suspense"),N=B("react.suspense_list"),R=B("react.memo"),O=B("react.lazy"),P=B("react.block"),B("react.scope"),I=B("react.opaque.id"),D=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var H=!1;function G(e,t){if(!e||H)return"";H=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var o=s.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{H=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 22:return e=G(e.type._render,!1);case 1:return e=G(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case _:return"StrictMode";case j:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case L:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case R:return V(e.type);case P:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&k(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ce(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function we(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Ee=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Se(e,t){if(t){if(Ee[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Le=null;function Ae(e){if(e=no(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=oo(t),Ce(e.stateNode,e.type,t))}}function je(e){Te?Le?Le.push(e):Le=[e]:Te=e}function Ne(){if(Te){var e=Te,t=Le;if(Le=Te=null,Ae(e),t)for(e=0;e<t.length;e++)Ae(t[e])}}function Re(e,t){return e(t)}function Oe(e,t,n,r,o){return e(t,n,r,o)}function Pe(){}var Ie=Re,De=!1,Me=!1;function Fe(){null===Te&&null===Le||(Pe(),Ne())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=oo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,o,a,i,l,s){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var qe=!1,He=null,Ge=!1,Ze=null,Ve={onError:function(e){qe=!0,He=e}};function We(e,t,n,r,o,a,i,l,s){qe=!1,He=null,$e.apply(Ve,arguments)}function Ye(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ye(e)!==e)throw Error(i(188))}function Qe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ye(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l){for(s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,at=[],it=null,lt=null,st=null,ct=new Map,ut=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ct.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function ht(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=ft(t,n,r,o,a),null!==t&&(null!==(t=no(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function gt(e){var t=to(e.target);if(null!==t){var n=Ye(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(ot=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ct.forEach(vt),ut.forEach(vt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yt)))}function wt(e){function t(t){return kt(t,e)}if(0<at.length){kt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&kt(it,e),null!==lt&&kt(lt,e),null!==st&&kt(st,e),ct.forEach(t),ut.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function Et(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var St={animationend:Et("Animation","AnimationEnd"),animationiteration:Et("Animation","AnimationIteration"),animationstart:Et("Animation","AnimationStart"),transitionend:Et("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!St[e])return e;var t,n=St[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete St.animationend.animation,delete St.animationiteration.animation,delete St.animationstart.animation),"TransitionEvent"in window||delete St.transitionend.transition);var Tt=Ct("animationend"),Lt=Ct("animationiteration"),At=Ct("animationstart"),jt=Ct("transitionend"),Nt=new Map,Rt=new Map,Ot=["abort","abort",Tt,"animationEnd",Lt,"animationIteration",At,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",jt,"transitionEnd","waiting","waiting"];function Pt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Rt.set(r,t),Nt.set(r,o),c(o,[r])}}(0,a.unstable_now)();var It=8;function Dt(e){if(0!=(1&e))return It=15,1;if(0!=(2&e))return It=14,2;if(0!=(4&e))return It=13,4;var t=24&e;return 0!==t?(It=12,t):0!=(32&e)?(It=11,32):0!==(t=192&e)?(It=10,t):0!=(256&e)?(It=9,256):0!==(t=3584&e)?(It=8,t):0!=(4096&e)?(It=7,4096):0!==(t=4186112&e)?(It=6,t):0!==(t=62914560&e)?(It=5,t):67108864&e?(It=4,67108864):0!=(134217728&e)?(It=3,134217728):0!==(t=805306368&e)?(It=2,t):0!=(1073741824&e)?(It=1,1073741824):(It=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return It=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==a)r=a,o=It=15;else if(0!==(a=134217727&n)){var s=a&~i;0!==s?(r=Dt(s),o=It):0!==(l&=a)&&(r=Dt(l),o=It)}else 0!==(a=n&~i)?(r=Dt(a),o=It):0!==l&&(r=Dt(l),o=It);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Dt(t),o<=It)return t;It=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-qt(t)),r|=e[n],t&=~o;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Bt(10,t):e;case 10:return 0===(e=zt(192&~t))?Bt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Ht(e)/Gt|0)|0},Ht=Math.log,Gt=Math.LN2;var Zt=a.unstable_UserBlockingPriority,Vt=a.unstable_runWithPriority,Wt=!0;function Yt(e,t,n,r){De||Pe();var o=Xt,a=De;De=!0;try{Oe(o,e,t,n,r)}finally{(De=a)||Fe()}}function Kt(e,t,n,r){Vt(Zt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Wt)if((o=0==(4&t))&&0<at.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),at.push(e);else{var a=Qt(e,t,n,r);if(null===a)o&&mt(e,r);else{if(o){if(-1<pt.indexOf(e))return e=ft(a,e,t,n,r),void at.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return it=ht(it,e,t,n,r,o),!0;case"dragenter":return lt=ht(lt,e,t,n,r,o),!0;case"mouseover":return st=ht(st,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return ct.set(a,ht(ct.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,ut.set(a,ht(ut.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;mt(e,r)}Pr(e,t,r,null,n)}}}function Qt(e,t,n,r){var o=_e(r);if(null!==(o=to(o))){var a=Ye(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Ke(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Pr(e,t,r,o,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Jt?Jt.value:Jt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function ln(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var sn,cn,un,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=ln(dn),fn=o({},dn,{view:0,detail:0}),mn=ln(fn),hn=o({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==un&&(un&&"mousemove"===e.type?(sn=e.screenX-un.screenX,cn=e.screenY-un.screenY):cn=sn=0,un=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),gn=ln(hn),bn=ln(o({},hn,{dataTransfer:0})),vn=ln(o({},fn,{relatedTarget:0})),yn=ln(o({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=o({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),wn=ln(kn),En=ln(o({},dn,{data:0})),Sn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var Ln=o({},fn,{key:function(e){if(e.key){var t=Sn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=ln(Ln),jn=ln(o({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=ln(o({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Rn=ln(o({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=o({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Pn=ln(On),In=[9,13,27,32],Dn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Mn,Bn=d&&(!Dn||Mn&&8<Mn&&11>=Mn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==In.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Hn=!1;var Gn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Gn[e.type]:"textarea"===t}function Vn(e,t,n,r){je(r),0<(t=Dr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,Yn=null;function Kn(e){Lr(e,0)}function Xn(e){if(X(ro(e)))return e}function Qn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Wn&&(Wn.detachEvent("onpropertychange",or),Yn=Wn=null)}function or(e){if("value"===e.propertyName&&Xn(Yn)){var t=[];if(Vn(t,Yn,e,_e(e)),e=Kn,De)e(t);else{De=!0;try{Re(e,t)}finally{De=!1,Fe()}}}}function ar(e,t,n){"focusin"===e?(rr(),Yn=n,(Wn=t).attachEvent("onpropertychange",or)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Yn)}function lr(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var cr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},ur=Object.prototype.hasOwnProperty;function dr(e,t){if(cr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ur.call(t,n[r])||!cr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,kr=null,wr=!1;function Er(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;wr||null==vr||vr!==Q(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&dr(kr,r)||(kr=r,0<(r=Dr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}Pt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Pt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Pt(Ot,2);for(var Sr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Sr.length;xr++)Rt.set(Sr[xr],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,l,s,c){if(We.apply(this,arguments),qe){if(!qe)throw Error(i(198));var u=He;qe=!1,He=null,Ge||(Ge=!0,Ze=u)}}(r,t,void 0,e),e.currentTarget=null}function Lr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;Tr(o,l,c),a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;Tr(o,l,c),a=s}}}if(Ge)throw e=Ze,Ge=!1,Ze=null,e}function Ar(e,t){var n=ao(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var jr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[jr]||(e[jr]=!0,l.forEach((function(t){Cr.has(t)||Rr(t,!1,e,null),Rr(t,!0,e,null)})))}function Rr(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=ao(a),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(o|=4),Or(a,e,o,t),i.add(l))}function Or(e,t,n,r){var o=Rt.get(t);switch(void 0===o?2:o){case 0:o=Yt;break;case 1:o=Kt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Pr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===o||8===s.nodeType&&s.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=to(l)))return;if(5===(s=i.tag)||6===s){r=a=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Ie(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=a,o=_e(n),i=[];e:{var l=Nt.get(e);if(void 0!==l){var s=pn,c=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=An;break;case"focusin":c="focus",s=vn;break;case"focusout":c="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Nn;break;case Tt:case Lt:case At:s=yn;break;case jt:s=Rn;break;case"scroll":s=mn;break;case"wheel":s=Pn;break;case"copy":case"cut":case"paste":s=wn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=jn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==l?l+"Capture":null:l;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Be(m,p))&&u.push(Ir(m,h,f)))),d)break;m=m.return}0<u.length&&(l=new s(l,c,null,n,o),i.push({event:l,listeners:u}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(c=n.relatedTarget||n.fromElement)||!to(c)&&!c[Jr])&&(s||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(c=(c=n.relatedTarget||n.toElement)?to(c):null)&&(c!==(d=Ye(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(s=null,c=r),s!==c)){if(u=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=jn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:ro(s),f=null==c?l:ro(c),(l=new u(h,m+"leave",s,n,o)).target=d,l.relatedTarget=f,h=null,to(o)===r&&((u=new u(p,m+"enter",c,n,o)).target=f,u.relatedTarget=d,h=u),d=h,s&&c)e:{for(p=c,m=0,f=u=s;f;f=Mr(f))m++;for(f=0,h=p;h;h=Mr(h))f++;for(;0<m-f;)u=Mr(u),m--;for(;0<f-m;)p=Mr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Mr(u),p=Mr(p)}u=null}else u=null;null!==s&&Fr(i,l,s,u,!1),null!==c&&null!==d&&Fr(i,d,c,u,!0)}if("select"===(s=(l=r?ro(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Qn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=ar}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,o):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&oe(l,"number",l.value)),b=r?ro(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,kr=null);break;case"focusout":kr=yr=vr=null;break;case"mousedown":wr=!0;break;case"contextmenu":case"mouseup":case"dragend":wr=!1,Er(i,n,o);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Er(i,n,o)}var v;if(Dn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Hn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Hn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Hn&&(v=nn()):(en="value"in(Jt=o)?Jt.value:Jt.textContent,Hn=!0)),0<(b=Dr(r,y)).length&&(y=new En(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Fn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Hn)return"compositionend"===e||!Dn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Hn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Dr(r,"onBeforeInput")).length&&(o=new En("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}Lr(i,t)}))}function Ir(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Be(e,n))&&r.unshift(Ir(e,a,o)),null!=(a=Be(e,t))&&r.push(Ir(e,a,o))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==c&&(l=c,o?null!=(s=Be(n,a))&&i.unshift(Ir(n,s,l)):o||null!=(s=Be(n,a))&&i.push(Ir(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Hr="function"==typeof setTimeout?setTimeout:void 0,Gr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Wr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Yr=0;var Kr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Kr,Qr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,eo="__reactEvents$"+Kr;function to(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Wr(e);null!==e;){if(n=e[Xr])return n;e=Wr(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Xr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ro(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oo(e){return e[Qr]||null}function ao(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var io=[],lo=-1;function so(e){return{current:e}}function co(e){0>lo||(e.current=io[lo],io[lo]=null,lo--)}function uo(e,t){lo++,io[lo]=e.current,e.current=t}var po={},fo=so(po),mo=so(!1),ho=po;function go(e,t){var n=e.type.contextTypes;if(!n)return po;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function bo(e){return null!=(e=e.childContextTypes)}function vo(){co(mo),co(fo)}function yo(e,t,n){if(fo.current!==po)throw Error(i(168));uo(fo,t),uo(mo,n)}function ko(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,V(t)||"Unknown",a));return o({},n,r)}function wo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||po,ho=fo.current,uo(fo,e),uo(mo,mo.current),!0}function Eo(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ko(e,t,ho),r.__reactInternalMemoizedMergedChildContext=e,co(mo),co(fo),uo(fo,e)):co(mo),uo(mo,n)}var So=null,xo=null,_o=a.unstable_runWithPriority,Co=a.unstable_scheduleCallback,To=a.unstable_cancelCallback,Lo=a.unstable_shouldYield,Ao=a.unstable_requestPaint,jo=a.unstable_now,No=a.unstable_getCurrentPriorityLevel,Ro=a.unstable_ImmediatePriority,Oo=a.unstable_UserBlockingPriority,Po=a.unstable_NormalPriority,Io=a.unstable_LowPriority,Do=a.unstable_IdlePriority,Mo={},Fo=void 0!==Ao?Ao:function(){},Bo=null,zo=null,Uo=!1,$o=jo(),qo=1e4>$o?jo:function(){return jo()-$o};function Ho(){switch(No()){case Ro:return 99;case Oo:return 98;case Po:return 97;case Io:return 96;case Do:return 95;default:throw Error(i(332))}}function Go(e){switch(e){case 99:return Ro;case 98:return Oo;case 97:return Po;case 96:return Io;case 95:return Do;default:throw Error(i(332))}}function Zo(e,t){return e=Go(e),_o(e,t)}function Vo(e,t,n){return e=Go(e),Co(e,t,n)}function Wo(){if(null!==zo){var e=zo;zo=null,To(e)}Yo()}function Yo(){if(!Uo&&null!==Bo){Uo=!0;var e=0;try{var t=Bo;Zo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Bo=null}catch(n){throw null!==Bo&&(Bo=Bo.slice(e+1)),Co(Ro,Wo),n}finally{Uo=!1}}}var Ko=w.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Qo=so(null),Jo=null,ea=null,ta=null;function na(){ta=ea=Jo=null}function ra(e){var t=Qo.current;co(Qo),e.type._context._currentValue=t}function oa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function aa(e,t){Jo=e,ta=ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Di=!0),e.firstContext=null)}function ia(e,t){if(ta!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ta=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ea){if(null===Jo)throw Error(i(308));ea=t,Jo.dependencies={lanes:0,firstContext:t,responders:null}}else ea=ea.next=t;return e._currentValue}var la=!1;function sa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ca(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ua(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function da(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function pa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fa(e,t,n,r){var a=e.updateQueue;la=!1;var i=a.firstBaseUpdate,l=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var c=s,u=c.next;c.next=null,null===l?i=u:l.next=u,l=c;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=c)}}if(null!==i){for(p=a.baseState,l=0,d=u=c=null;;){s=i.lane;var f=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,s);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(f,p,s):m))break e;p=o({},p,s);break e;case 2:la=!0}}null!==i.callback&&(e.flags|=32,null===(s=a.effects)?a.effects=[i]:s.push(i))}else f={eventTime:f,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,c=p):d=d.next=f,l|=s;if(null===(i=i.next)){if(null===(s=a.shared.pending))break;i=s.next,s.next=null,a.lastBaseUpdate=s,a.shared.pending=null}}null===d&&(c=p),a.baseState=c,a.firstBaseUpdate=u,a.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=p}}function ma(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ha=(new r.Component).refs;function ga(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ba={isMounted:function(e){return!!(e=e._reactInternals)&&Ye(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ps(),o=fs(e),a=ua(r,o);a.payload=t,null!=n&&(a.callback=n),da(e,a),ms(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ps(),o=fs(e),a=ua(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),da(e,a),ms(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ps(),r=fs(e),o=ua(n,r);o.tag=2,null!=t&&(o.callback=t),da(e,o),ms(e,r,n)}};function va(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(o,a))}function ya(e,t,n){var r=!1,o=po,a=t.contextType;return"object"==typeof a&&null!==a?a=ia(a):(o=bo(t)?ho:fo.current,a=(r=null!=(r=t.contextTypes))?go(e,o):po),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=ba,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ka(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ba.enqueueReplaceState(t,t.state,null)}function wa(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ha,sa(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=ia(a):(a=bo(t)?ho:fo.current,o.context=go(e,a)),fa(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ga(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&ba.enqueueReplaceState(o,o.state,null),fa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var Ea=Array.isArray;function Sa(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ha&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xa(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _a(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=Sa(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Sa(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xs(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Ws(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case E:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Sa(e,null,t),n.return=e,n;case S:return(t=Xs(t,e.mode,n)).return=e,t}if(Ea(t)||$(t))return(t=Ws(t,e.mode,n,null)).return=e,t;xa(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case E:return n.key===o?n.type===x?d(e,t,n.props.children,r,o):c(e,t,n,r):null;case S:return n.key===o?u(e,t,n,r):null}if(Ea(n)||$(n))return null!==o?null:d(e,t,n,r,null);xa(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case E:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,o,r.key):c(t,e,r,o);case S:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(Ea(r)||$(r))return d(t,e=e.get(n)||null,r,o,null);xa(t,r)}return null}function h(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===l.length)return n(o,d),c;if(null===d){for(;h<l.length;h++)null!==(d=p(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return c}for(d=r(o,d);h<l.length;h++)null!==(g=m(d,o,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),c}function g(o,l,s,c){var u=$(s);if("function"!=typeof u)throw Error(i(150));if(null==(s=u.call(s)))throw Error(i(151));for(var d=u=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),l=a(y,l,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),u;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(o,v.value,c))&&(l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(o,h);!v.done;g++,v=s.next())null!==(v=m(h,o,g,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),u}return function(e,r,a,s){var c="object"==typeof a&&null!==a&&a.type===x&&null===a.key;c&&(a=a.props.children);var u="object"==typeof a&&null!==a;if(u)switch(a.$$typeof){case E:e:{for(u=a.key,c=r;null!==c;){if(c.key===u){if(7===c.tag){if(a.type===x){n(e,c.sibling),(r=o(c,a.props.children)).return=e,e=r;break e}}else if(c.elementType===a.type){n(e,c.sibling),(r=o(c,a.props)).ref=Sa(e,c,a),r.return=e,e=r;break e}n(e,c);break}t(e,c),c=c.sibling}a.type===x?((r=Ws(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=Vs(a.type,a.key,a.props,null,e.mode,s)).ref=Sa(e,r,a),s.return=e,e=s)}return l(e);case S:e:{for(c=a.key;null!==r;){if(r.key===c){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xs(a,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Ks(a,e.mode,s)).return=e,e=r),l(e);if(Ea(a))return h(e,r,a,s);if($(a))return g(e,r,a,s);if(u&&xa(e,a),void 0===a&&!c)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Ca=_a(!0),Ta=_a(!1),La={},Aa=so(La),ja=so(La),Na=so(La);function Ra(e){if(e===La)throw Error(i(174));return e}function Oa(e,t){switch(uo(Na,t),uo(ja,e),uo(Aa,La),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}co(Aa),uo(Aa,t)}function Pa(){co(Aa),co(ja),co(Na)}function Ia(e){Ra(Na.current);var t=Ra(Aa.current),n=fe(t,e.type);t!==n&&(uo(ja,e),uo(Aa,n))}function Da(e){ja.current===e&&(co(Aa),co(ja))}var Ma=so(0);function Fa(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ba=null,za=null,Ua=!1;function $a(e,t){var n=Hs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qa(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Ha(e){if(Ua){var t=za;if(t){var n=t;if(!qa(e,t)){if(!(t=Vr(n.nextSibling))||!qa(e,t))return e.flags=-1025&e.flags|2,Ua=!1,void(Ba=e);$a(Ba,n)}Ba=e,za=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Ua=!1,Ba=e}}function Ga(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Ba=e}function Za(e){if(e!==Ba)return!1;if(!Ua)return Ga(e),Ua=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=za;t;)$a(e,t),t=Vr(t.nextSibling);if(Ga(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){za=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}za=null}}else za=Ba?Vr(e.stateNode.nextSibling):null;return!0}function Va(){za=Ba=null,Ua=!1}var Wa=[];function Ya(){for(var e=0;e<Wa.length;e++)Wa[e]._workInProgressVersionPrimary=null;Wa.length=0}var Ka=w.ReactCurrentDispatcher,Xa=w.ReactCurrentBatchConfig,Qa=0,Ja=null,ei=null,ti=null,ni=!1,ri=!1;function oi(){throw Error(i(321))}function ai(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!cr(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,o,a){if(Qa=a,Ja=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ka.current=null===e||null===e.memoizedState?Ri:Oi,e=n(r,o),ri){a=0;do{if(ri=!1,!(25>a))throw Error(i(301));a+=1,ti=ei=null,t.updateQueue=null,Ka.current=Pi,e=n(r,o)}while(ri)}if(Ka.current=Ni,t=null!==ei&&null!==ei.next,Qa=0,ti=ei=Ja=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Ja.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Ja.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Ja.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Ja.memoizedState=ti=e:ti=ti.next=e}return ti}function ci(e,t){return"function"==typeof t?t(e):t}function ui(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var l=o.next;o.next=a.next,a.next=l}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var s=l=a=null,c=o;do{var u=c.lane;if((Qa&u)===u)null!==s&&(s=s.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var d={lane:u,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===s?(l=s=d,a=r):s=s.next=d,Ja.lanes|=u,Ul|=u}c=c.next}while(null!==c&&c!==o);null===s?a=r:s.next=l,cr(r,t.memoizedState)||(Di=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{a=e(a,l.action),l=l.next}while(l!==o);cr(a,t.memoizedState)||(Di=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Qa&e)===e)&&(t._workInProgressVersionPrimary=r,Wa.push(t))),e)return n(t._source);throw Wa.push(t),Error(i(350))}function fi(e,t,n,r){var o=Ol;if(null===o)throw Error(i(349));var a=t._getVersion,l=a(t._source),s=Ka.current,c=s.useState((function(){return pi(o,t,n)})),u=c[1],d=c[0];c=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Ja;return e.memoizedState={refs:f,source:t,subscribe:r},s.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=a(t._source);if(!cr(l,e)){e=n(t._source),cr(d,e)||(u(e),e=fs(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var s=31-qt(i),c=1<<s;r[s]|=e,i&=~c}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fs(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),cr(m,n)&&cr(h,t)&&cr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:d}).dispatch=u=ji.bind(null,Ja,e),c.queue=e,c.baseQueue=null,d=pi(o,t,n),c.memoizedState=c.baseState=d),d}function mi(e,t,n){return fi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:e}).dispatch=ji.bind(null,Ja,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Ja.updateQueue)?(t={lastEffect:null},Ja.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var o=li();Ja.flags|=e,o.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var o=si();r=void 0===r?null:r;var a=void 0;if(null!==ei){var i=ei.memoizedState;if(a=i.destroy,null!==r&&ai(r,i.deps))return void gi(t,n,a,r)}Ja.flags|=e,o.memoizedState=gi(1|t,n,a,r)}function wi(e,t){return yi(516,4,e,t)}function Ei(e,t){return ki(516,4,e,t)}function Si(e,t){return ki(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Li(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ai(e,t){var n=Ho();Zo(98>n?98:n,(function(){e(!0)})),Zo(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function ji(e,t,n){var r=ps(),o=fs(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===Ja||null!==i&&i===Ja)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(a.eagerReducer=i,a.eagerState=s,cr(s,l))return}catch(c){}ms(e,o,r)}}var Ni={readContext:ia,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Ri={readContext:ia,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:ia,useEffect:wi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=ji.bind(null,Ja,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return wi((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Ai.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(Ua){var e=!1,t=function(e){return{$$typeof:I,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Yr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Ja.mode)&&(Ja.flags|=516,gi(5,(function(){n("r:"+(Yr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Yr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:ia,useCallback:Ti,useContext:ia,useEffect:Ei,useImperativeHandle:_i,useLayoutEffect:Si,useMemo:Li,useReducer:ui,useRef:vi,useState:function(){return ui(ci)},useDebugValue:Ci,useDeferredValue:function(e){var t=ui(ci),n=t[0],r=t[1];return Ei((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=ui(ci)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ui(ci)[0]},unstable_isNewReconciler:!1},Pi={readContext:ia,useCallback:Ti,useContext:ia,useEffect:Ei,useImperativeHandle:_i,useLayoutEffect:Si,useMemo:Li,useReducer:di,useRef:vi,useState:function(){return di(ci)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ci),n=t[0],r=t[1];return Ei((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(ci)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ci)[0]},unstable_isNewReconciler:!1},Ii=w.ReactCurrentOwner,Di=!1;function Mi(e,t,n,r){t.child=null===e?Ta(t,null,n,r):Ca(t,e.child,n,r)}function Fi(e,t,n,r,o){n=n.render;var a=t.ref;return aa(t,o),r=ii(e,t,n,r,a,o),null===e||Di?(t.flags|=1,Mi(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Bi(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||Gs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(o,r)&&e.ref===t.ref)?al(e,t,a):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,o,a){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Di=!1,0==(a&o))return t.lanes=e.lanes,al(e,t,a);0!=(16384&e.flags)&&(Di=!0)}return qi(e,t,n,r,a)}function Ui(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Es(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Es(t,e),null;t.memoizedState={baseLanes:0},Es(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Es(t,r);return Mi(e,t,o,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,o){var a=bo(n)?ho:fo.current;return a=go(t,a),aa(t,o),n=ii(e,t,n,r,a,o),null===e||Di?(t.flags|=1,Mi(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Hi(e,t,n,r,o){if(bo(n)){var a=!0;wo(t)}else a=!1;if(aa(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),ya(t,n,r),wa(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=ia(c):c=go(t,c=bo(n)?ho:fo.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==c)&&ka(t,i,r,c),la=!1;var p=t.memoizedState;i.state=p,fa(t,r,i,o),s=t.memoizedState,l!==r||p!==s||mo.current||la?("function"==typeof u&&(ga(t,n,u,r),s=t.memoizedState),(l=la||va(t,n,l,r,p,s,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=c,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,ca(e,t),l=t.memoizedProps,c=t.type===t.elementType?l:Xo(t.type,l),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=ia(s):s=go(t,s=bo(n)?ho:fo.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ka(t,i,r,s),la=!1,p=t.memoizedState,i.state=p,fa(t,r,i,o);var m=t.memoizedState;l!==d||p!==m||mo.current||la?("function"==typeof f&&(ga(t,n,f,r),m=t.memoizedState),(c=la||va(t,n,c,r,p,m,s))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=c):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Gi(e,t,n,r,a,o)}function Gi(e,t,n,r,o,a){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&Eo(t,n,!1),al(e,t,a);r=t.stateNode,Ii.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ca(t,e.child,null,a),t.child=Ca(t,null,l,a)):Mi(e,t,l,a),t.memoizedState=r.state,o&&Eo(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?yo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&yo(0,t.context,!1),Oa(e,t.containerInfo)}var Vi,Wi,Yi,Ki,Xi={dehydrated:null,retryLane:0};function Qi(e,t,n){var r,o=t.pendingProps,a=Ma.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),uo(Ma,1&a),null===e?(void 0!==o.fallback&&Ha(t),e=o.children,a=o.fallback,i?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Ys({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=tl(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,o):(n=el(e,t,o.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Ys(t,o,0,null),n=Ws(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function el(e,t,n,r){var o=e.child;return e=o.sibling,n=Zs(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Ws(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),oa(e.return,t)}function rl(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function ol(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Ma.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(uo(Ma,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Fa(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rl(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Fa(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rl(t,!0,n,null,a,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function al(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Ua)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return bo(t.type)&&vo(),null;case 3:return Pa(),co(mo),co(fo),Ya(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Za(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Wi(t),null;case 5:Da(t);var a=Ra(Na.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Ra(Aa.current),Za(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Qr]=l,n){case"dialog":Ar("cancel",r),Ar("close",r);break;case"iframe":case"object":case"embed":Ar("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Ar(_r[e],r);break;case"source":Ar("error",r);break;case"img":case"image":case"link":Ar("error",r),Ar("load",r);break;case"details":Ar("toggle",r);break;case"input":ee(r,l),Ar("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Ar("invalid",r);break;case"textarea":se(r,l),Ar("invalid",r)}for(var c in Se(n,l),e=null,l)l.hasOwnProperty(c)&&(a=l[c],"children"===c?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):s.hasOwnProperty(c)&&null!=a&&"onScroll"===c&&Ar("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ue(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(c=9===a.nodeType?a:a.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=c.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(n,{is:r.is}):(e=c.createElement(n),"select"===n&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,n),e[Xr]=t,e[Qr]=r,Vi(e,t,!1,!1),t.stateNode=e,c=xe(n,r),n){case"dialog":Ar("cancel",e),Ar("close",e),a=r;break;case"iframe":case"object":case"embed":Ar("load",e),a=r;break;case"video":case"audio":for(a=0;a<_r.length;a++)Ar(_r[a],e);a=r;break;case"source":Ar("error",e),a=r;break;case"img":case"image":case"link":Ar("error",e),Ar("load",e),a=r;break;case"details":Ar("toggle",e),a=r;break;case"input":ee(e,r),a=J(e,r),Ar("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Ar("invalid",e);break;case"textarea":se(e,r),a=le(e,r),Ar("invalid",e);break;default:a=r}Se(n,a);var u=a;for(l in u)if(u.hasOwnProperty(l)){var d=u[l];"style"===l?we(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Ar("scroll",e):null!=d&&k(e,l,d,c))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Br)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Ra(Na.current),Ra(Aa.current),Za(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return co(Ma),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Za(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Ma.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Il))),(r||n)&&(t.flags|=4),null);case 4:return Pa(),Wi(t),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return ra(t),null;case 19:if(co(Ma),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(c=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(c=Fa(e))){for(t.flags|=64,il(r,!1),null!==(l=c.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(c=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=c.childLanes,l.lanes=c.lanes,l.child=c.child,l.memoizedProps=c.memoizedProps,l.memoizedState=c.memoizedState,l.updateQueue=c.updateQueue,l.type=c.type,e=c.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return uo(Ma,1&Ma.current|2),t.child}e=e.sibling}null!==r.tail&&qo()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Fa(c))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!c.alternate&&!Ua)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*qo()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(c.sibling=t.child,t.child=c):(null!==(n=r.last)?n.sibling=c:t.child=c,r.last=c)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=qo(),n.sibling=null,t=Ma.current,uo(Ma,l?1&t|2:1&t),n):null;case 23:case 24:return Ss(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:bo(e.type)&&vo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Pa(),co(mo),co(fo),Ya(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Da(e),null;case 13:return co(Ma),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return co(Ma),null;case 4:return Pa(),null;case 10:return ra(e),null;case 23:case 24:return Ss(),null;default:return null}}function cl(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function ul(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Wi=function(){},Yi=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ra(Aa.current);var i,l=null;switch(n){case"input":a=J(e,a),r=J(e,r),l=[];break;case"option":a=ae(e,a),r=ae(e,r),l=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),l=[];break;case"textarea":a=le(e,a),r=le(e,r),l=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in Se(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var c=a[d];for(i in c)c.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var u=r[d];if(c=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&u!==c&&(null!=u||null!=c))if("style"===d)if(c){for(i in c)!c.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&c[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(l||(l=[]),l.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,c=c?c.__html:void 0,null!=u&&c!==u&&(l=l||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(l=l||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Ar("scroll",e),l||c===u||(l=[])):"object"==typeof u&&null!==u&&u.$$typeof===I?u.toString():(l=l||[]).push(d,u))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=ua(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Xl=r),ul(0,t)},n}function fl(e,t,n){(n=ua(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return ul(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Ql?Ql=new Set([this]):Ql.add(this),ul(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Ms(n,e),Ds(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ma(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ma(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&wt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=ke("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(xo&&"function"==typeof xo.onCommitFiberUnmount)try{xo.onCommitFiberUnmount(So,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Ms(t,n);else{r=t;try{o()}catch(a){zs(r,a)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){zs(t,a)}break;case 5:hl(t);break;case 4:_l(e,t)}}function kl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function wl(e){return 5===e.tag||3===e.tag||4===e.tag}function El(e){e:{for(var t=e.return;null!==t;){if(wl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||wl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Sl(e,n,t):xl(e,n,t)}function Sl(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(Sl(e,t,n),e=e.sibling;null!==e;)Sl(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var l=e,s=o,c=s;;)if(yl(l,c),null!==c.child&&4!==c.tag)c.child.return=c,c=c.child;else{if(c===s)break e;for(;null===c.sibling;){if(null===c.return||c.return===s)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}r?(l=n,s=o.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(yl(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Qr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,o),t=xe(e,r),o=0;o<a.length;o+=2){var l=a[o],s=a[o+1];"style"===l?we(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):k(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ce(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,wt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Gl=qo(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ll(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Al=Math.ceil,jl=w.ReactCurrentDispatcher,Nl=w.ReactCurrentOwner,Rl=0,Ol=null,Pl=null,Il=0,Dl=0,Ml=so(0),Fl=0,Bl=null,zl=0,Ul=0,$l=0,ql=0,Hl=null,Gl=0,Zl=1/0;function Vl(){Zl=qo()+500}var Wl,Yl=null,Kl=!1,Xl=null,Ql=null,Jl=!1,es=null,ts=90,ns=[],rs=[],os=null,as=0,is=null,ls=-1,ss=0,cs=0,us=null,ds=!1;function ps(){return 0!=(48&Rl)?qo():-1!==ls?ls:ls=qo()}function fs(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Ho()?1:2;if(0===ss&&(ss=zl),0!==Ko.transition){0!==cs&&(cs=null!==Hl?Hl.pendingLanes:0),e=ss;var t=4186112&~cs;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Ho(),0!=(4&Rl)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<as)throw as=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Fl&&vs(e,Il));var r=Ho();1===t?0!=(8&Rl)&&0==(48&Rl)?ys(e):(gs(e,n),0===Rl&&(Vl(),Wo())):(0==(4&Rl)||98!==r&&99!==r||(null===os?os=new Set([e]):os.add(e)),gs(e,n)),Hl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),c=1<<s,u=a[s];if(-1===u){if(0==(c&r)||0!=(c&o)){u=t,Dt(c);var d=It;a[s]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=c);l&=~c}if(r=Mt(e,e===Ol?Il:0),t=It,0===r)null!==n&&(n!==Mo&&To(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Mo&&To(n)}15===t?(n=ys.bind(null,e),null===Bo?(Bo=[n],zo=Co(Ro,Yo)):Bo.push(n),n=Mo):14===t?n=Vo(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Vo(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,cs=ss=0,0!=(48&Rl))throw Error(i(327));var t=e.callbackNode;if(Is()&&e.callbackNode!==t)return null;var n=Mt(e,e===Ol?Il:0);if(0===n)return null;var r=n,o=Rl;Rl|=16;var a=Cs();for(Ol===e&&Il===r||(Vl(),xs(e,r));;)try{As();break}catch(s){_s(e,s)}if(na(),jl.current=a,Rl=o,null!==Pl?r=0:(Ol=null,Il=0,r=Fl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Rl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Ft(e))&&(r=Ts(e,n))),1===r)throw t=Bl,xs(e,0),vs(e,n),gs(e,qo()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Rs(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Gl+500-qo())){if(0!==Mt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){ps(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=Hr(Rs.bind(null,e),r);break}Rs(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var l=31-qt(n);a=1<<l,(l=r[l])>o&&(o=l),n&=~a}if(n=o,10<(n=(120>(n=qo()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Al(n/1960))-n)){e.timeoutHandle=Hr(Rs.bind(null,e),n);break}Rs(e);break;default:throw Error(i(329))}}return gs(e,qo()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Rl))throw Error(i(327));if(Is(),e===Ol&&0!=(e.expiredLanes&Il)){var t=Il,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Mt(e,t)))}else n=Ts(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Rl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Ft(e))&&(n=Ts(e,t))),1===n)throw n=Bl,xs(e,0),vs(e,t),gs(e,qo()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Rs(e),gs(e,qo()),null}function ks(e,t){var n=Rl;Rl|=1;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wo())}}function ws(e,t){var n=Rl;Rl&=-2,Rl|=8;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wo())}}function Es(e,t){uo(Ml,Dl),Dl|=t,zl|=t}function Ss(){Dl=Ml.current,co(Ml)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Gr(n)),null!==Pl)for(n=Pl.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&vo();break;case 3:Pa(),co(mo),co(fo),Ya();break;case 5:Da(r);break;case 4:Pa();break;case 13:case 19:co(Ma);break;case 10:ra(r);break;case 23:case 24:Ss()}n=n.return}Ol=e,Pl=Zs(e.current,null),Il=Dl=zl=t,Fl=0,Bl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Pl;try{if(na(),Ka.current=Ni,ni){for(var r=Ja.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ni=!1}if(Qa=0,ti=ei=Ja=null,ri=!1,Nl.current=null,null===n||null===n.return){Fl=1,Bl=t,Pl=null;break}e:{var a=e,i=n.return,l=n,s=t;if(t=Il,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var c=s;if(0==(2&l.mode)){var u=l.alternate;u?(l.updateQueue=u.updateQueue,l.memoizedState=u.memoizedState,l.lanes=u.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Ma.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(c),p.updateQueue=b}else g.add(c);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=ua(-1,1);v.tag=2,da(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new dl,s=new Set,y.set(c,s)):void 0===(s=y.get(c))&&(s=new Set,y.set(c,s)),!s.has(l)){s.add(l);var k=Us.bind(null,a,c,l);c.then(k,k)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),s=cl(s,l),p=i;do{switch(p.tag){case 3:a=s,p.flags|=4096,t&=-t,p.lanes|=t,pa(p,pl(0,a,t));break e;case 1:a=s;var w=p.type,E=p.stateNode;if(0==(64&p.flags)&&("function"==typeof w.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Ql||!Ql.has(E)))){p.flags|=4096,t&=-t,p.lanes|=t,pa(p,fl(p,a,t));break e}}p=p.return}while(null!==p)}Ns(n)}catch(S){t=S,Pl===n&&null!==n&&(Pl=n=n.return);continue}break}}function Cs(){var e=jl.current;return jl.current=Ni,null===e?Ni:e}function Ts(e,t){var n=Rl;Rl|=16;var r=Cs();for(Ol===e&&Il===t||xs(e,t);;)try{Ls();break}catch(o){_s(e,o)}if(na(),Rl=n,jl.current=r,null!==Pl)throw Error(i(261));return Ol=null,Il=0,Fl}function Ls(){for(;null!==Pl;)js(Pl)}function As(){for(;null!==Pl&&!Lo();)js(Pl)}function js(e){var t=Wl(e.alternate,e,Dl);e.memoizedProps=e.pendingProps,null===t?Ns(e):Pl=t,Nl.current=null}function Ns(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Dl)))return void(Pl=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Dl)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Pl=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Pl=t);Pl=t=e}while(null!==t);0===Fl&&(Fl=5)}function Rs(e){var t=Ho();return Zo(99,Os.bind(null,e,t)),null}function Os(e,t){do{Is()}while(null!==es);if(0!=(48&Rl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<a;){var c=31-qt(a),u=1<<c;o[c]=0,l[c]=-1,s[c]=-1,a&=~u}if(null!==os&&0==(24&r)&&os.has(e)&&os.delete(e),e===Ol&&(Pl=Ol=null,Il=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Rl,Rl|=32,Nl.current=null,zr=Wt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(u=s.getSelection&&s.getSelection())&&0!==u.rangeCount){s=u.anchorNode,a=u.anchorOffset,c=u.focusNode,u=u.focusOffset;try{s.nodeType,c.nodeType}catch(C){s=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==a&&3!==g.nodeType||(p=d+a),g!==c||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===a&&(p=d),b===c&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===p||-1===f?null:{start:p,end:f}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Wt=!1,us=null,ds=!1,Yl=r;do{try{Ps()}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);us=null,Yl=r;do{try{for(l=e;null!==Yl;){var y=Yl.flags;if(16&y&&be(Yl.stateNode,""),128&y){var k=Yl.alternate;if(null!==k){var w=k.ref;null!==w&&("function"==typeof w?w(null):w.current=null)}}switch(1038&y){case 2:El(Yl),Yl.flags&=-3;break;case 6:El(Yl),Yl.flags&=-3,Cl(Yl.alternate,Yl);break;case 1024:Yl.flags&=-1025;break;case 1028:Yl.flags&=-1025,Cl(Yl.alternate,Yl);break;case 4:Cl(Yl.alternate,Yl);break;case 8:_l(l,s=Yl);var E=s.alternate;kl(s),null!==E&&kl(E)}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);if(w=Ur,k=hr(),y=w.focusedElem,l=w.selectionRange,k!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(k=l.start,void 0===(w=l.end)&&(w=k),"selectionStart"in y?(y.selectionStart=k,y.selectionEnd=Math.min(w,y.value.length)):(w=(k=y.ownerDocument||document)&&k.defaultView||window).getSelection&&(w=w.getSelection(),s=y.textContent.length,E=Math.min(l.start,s),l=void 0===l.end?E:Math.min(l.end,s),!w.extend&&E>l&&(s=l,l=E,E=s),s=fr(y,E),a=fr(y,l),s&&a&&(1!==w.rangeCount||w.anchorNode!==s.node||w.anchorOffset!==s.offset||w.focusNode!==a.node||w.focusOffset!==a.offset)&&((k=k.createRange()).setStart(s.node,s.offset),w.removeAllRanges(),E>l?(w.addRange(k),w.extend(a.node,a.offset)):(k.setEnd(a.node,a.offset),w.addRange(k))))),k=[];for(w=y;w=w.parentNode;)1===w.nodeType&&k.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<k.length;y++)(w=k[y]).element.scrollLeft=w.left,w.element.scrollTop=w.top}Wt=!!zr,Ur=zr=null,e.current=n,Yl=r;do{try{for(y=e;null!==Yl;){var S=Yl.flags;if(36&S&&bl(y,Yl.alternate,Yl),128&S){k=void 0;var x=Yl.ref;if(null!==x){var _=Yl.stateNode;Yl.tag,k=_,"function"==typeof x?x(k):x.current=k}}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);Yl=null,Fo(),Rl=o}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Yl=r;null!==Yl;)t=Yl.nextEffect,Yl.nextEffect=null,8&Yl.flags&&((S=Yl).sibling=null,S.stateNode=null),Yl=t;if(0===(r=e.pendingLanes)&&(Ql=null),1===r?e===is?as++:(as=0,is=e):as=0,n=n.stateNode,xo&&"function"==typeof xo.onCommitFiberRoot)try{xo.onCommitFiberRoot(So,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,qo()),Kl)throw Kl=!1,e=Xl,Xl=null,e;return 0!=(8&Rl)||Wo(),null}function Ps(){for(;null!==Yl;){var e=Yl.alternate;ds||null===us||(0!=(8&Yl.flags)?Je(Yl,us)&&(ds=!0):13===Yl.tag&&Ll(e,Yl)&&Je(Yl,us)&&(ds=!0));var t=Yl.flags;0!=(256&t)&&gl(e,Yl),0==(512&t)||Jl||(Jl=!0,Vo(97,(function(){return Is(),null}))),Yl=Yl.nextEffect}}function Is(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Zo(e,Fs)}return!1}function Ds(e,t){ns.push(t,e),Jl||(Jl=!0,Vo(97,(function(){return Is(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Vo(97,(function(){return Is(),null})))}function Fs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Rl))throw Error(i(331));var t=Rl;Rl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],l=o.destroy;if(o.destroy=void 0,"function"==typeof l)try{l()}catch(c){if(null===a)throw Error(i(330));zs(a,c)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var s=o.create;o.destroy=s()}catch(c){if(null===a)throw Error(i(330));zs(a,c)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Rl=t,Wo(),!0}function Bs(e,t,n){da(e,t=pl(0,t=cl(n,t),1)),t=ps(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r))){var o=fl(n,e=cl(t,e),1);if(da(n,o),o=ps(),null!==(n=hs(n,1)))$t(n,1,o),gs(n,o);else if("function"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ps(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Il&n)===n&&(4===Fl||3===Fl&&(62914560&Il)===Il&&500>qo()-Gl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ho()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=ps(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Hs(e,t,n,r){return new qs(e,t,n,r)}function Gs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Hs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,o,a){var l=2;if(r=e,"function"==typeof e)Gs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Ws(n.children,o,a,t);case D:l=8,o|=16;break;case _:l=8,o|=1;break;case C:return(e=Hs(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case j:return(e=Hs(13,n,t,o)).type=j,e.elementType=j,e.lanes=a,e;case N:return(e=Hs(19,n,t,o)).elementType=N,e.lanes=a,e;case M:return Ys(n,o,a,t);case F:return(e=Hs(24,n,t,o)).elementType=F,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case L:l=9;break e;case A:l=11;break e;case R:l=14;break e;case O:l=16,r=null;break e;case P:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Hs(l,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Ws(e,t,n,r){return(e=Hs(7,e,r,t)).lanes=n,e}function Ys(e,t,n,r){return(e=Hs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ks(e,t,n){return(e=Hs(6,e,null,t)).lanes=n,e}function Xs(e,t,n){return(t=Hs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Qs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var o=t.current,a=ps(),l=fs(o);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(bo(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var c=n.type;if(bo(c)){n=ko(n,c,s);break e}}n=s}else n=po;return null===t.context?t.context=n:t.pendingContext=n,(t=ua(a,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),da(o,t),ms(o,l,a),l}function ec(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nc(e,t){tc(e,t),(e=e.alternate)&&tc(e,t)}function rc(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Qs(e,t,null!=n&&!0===n.hydrate),t=Hs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,sa(t),e[Jr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function oc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ac(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=ec(i);l.call(e)}}Js(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new rc(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var s=o;o=function(){var e=ec(i);s.call(e)}}ws((function(){Js(t,i,e,o)}))}return ec(i)}function ic(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!oc(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Wl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||mo.current)Di=!0;else{if(0==(n&r)){switch(Di=!1,t.tag){case 3:Zi(t),Va();break;case 5:Ia(t);break;case 1:bo(t.type)&&wo(t);break;case 4:Oa(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;uo(Qo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Qi(e,t,n):(uo(Ma,1&Ma.current),null!==(t=al(e,t,n))?t.sibling:null);uo(Ma,1&Ma.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return ol(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),uo(Ma,Ma.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return al(e,t,n)}Di=0!=(16384&e.flags)}else Di=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=go(t,fo.current),aa(t,n),o=ii(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,bo(r)){var a=!0;wo(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,sa(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&ga(t,r,l,e),o.updater=ba,t.stateNode=o,o._reactInternals=t,wa(t,r,e,n),t=Gi(null,t,r,!0,a,n)}else t.tag=0,Mi(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return Gs(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===R)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=qi(null,t,o,e,n);break e;case 1:t=Hi(null,t,o,e,n);break e;case 11:t=Fi(null,t,o,e,n);break e;case 14:t=Bi(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,qi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,Hi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,ca(e,t),fa(t,r,null,n),(r=t.memoizedState.element)===o)Va(),t=al(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(za=Vr(t.stateNode.containerInfo.firstChild),Ba=t,a=Ua=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Wa.push(a);for(n=Ta(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Va();t=t.child}return t;case 5:return Ia(t),null===e&&Ha(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,qr(r,o)?l=null:null!==a&&qr(r,a)&&(t.flags|=16),$i(e,t),Mi(e,t,l,n),t.child;case 6:return null===e&&Ha(t),null;case 13:return Qi(e,t,n);case 4:return Oa(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ca(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Fi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,a=o.value;var s=t.type._context;if(uo(Qo,s._currentValue),s._currentValue=a,null!==l)if(s=l.value,0===(a=cr(s,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823))){if(l.children===o.children&&!mo.current){t=al(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var c=s.dependencies;if(null!==c){l=s.child;for(var u=c.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&a)){1===s.tag&&((u=ua(-1,n&-n)).tag=2,da(s,u)),s.lanes|=n,null!==(u=s.alternate)&&(u.lanes|=n),oa(s.return,n),c.lanes|=n;break}u=u.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Mi(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,aa(t,n),r=r(o=ia(o,a.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),Bi(e,t,o,a=Xo(o.type,a),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,bo(r)?(e=!0,wo(t)):e=!1,aa(t,n),ya(t,r,o),wa(t,r,o,n),Gi(null,t,r,!0,e,n);case 19:return ol(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},rc.prototype.render=function(e){Js(e,this._internalRoot,null,null)},rc.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,ps()),nc(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,ps()),nc(e,67108864))},nt=function(e){if(13===e.tag){var t=ps(),n=fs(e);ms(e,n,t),nc(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=oo(r);if(!o)throw Error(i(90));X(r),ne(r,o)}}}break;case"textarea":ce(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Re=ks,Oe=function(e,t,n,r,o){var a=Rl;Rl|=4;try{return Zo(98,e.bind(null,t,n,r,o))}finally{0===(Rl=a)&&(Vl(),Wo())}},Pe=function(){0==(49&Rl)&&(function(){if(null!==os){var e=os;os=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,qo())}))}Wo()}(),Is())},Ie=function(e,t){var n=Rl;Rl|=2;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wo())}};var lc={Events:[no,ro,oo,je,Ne,Is,{current:!1}]},sc={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},cc={bundleType:sc.bundleType,version:sc.version,rendererPackageName:sc.rendererPackageName,rendererConfig:sc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Qe(e))?null:e.stateNode},findFiberByHostInstance:sc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var uc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!uc.isDisabled&&uc.supportsFiber)try{So=uc.inject(cc),xo=uc}catch(he){}}t.hydrate=function(e,t,n){if(!oc(t))throw Error(i(200));return ac(null,e,t,!0,n)}},7995:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(7439)},5154:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,c,u;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!a(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;for(u=e.entries();!(s=u.next()).done;)if(!a(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,c[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==c[s]&&"__v"!==c[s]&&"__o"!==c[s]||!e.$$typeof)&&!a(e[c[s]],i[c[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},8663:(e,t,n)=>{"use strict";n.d(t,{B6:()=>G,ql:()=>J});var r=n(9496),o=n(507),a=n.n(o),i=n(5154),l=n.n(i),s=n(3670),c=n.n(s),u=n(631),d=n.n(u);function p(){return p=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},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},k=Object.keys(g).map((function(e){return g[e]})),w={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},E=Object.keys(w).reduce((function(e,t){return e[w[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},L=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var l=a[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var l=a[i],s=p({},r[l],o[l]);r[l]=s}return e}),[]).reverse()},A=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},j=function(e){return Array.isArray(e)?e.join(""):e},N=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},R=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],P=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[w[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=w[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=D(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=I(n),a=j(t);return o?"<"+e+' data-rh="true" '+o+">"+P(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+P(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+P(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=N(e.metaTags,y),a=N(t,b),i=N(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,o.priority,r)+" "+F(g.LINK,a.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",o,r),link:F(g.LINK,u,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,a,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:c},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],c=t[s]||"";n.getAttribute(s)!==c&&n.setAttribute(s,c),-1===o.indexOf(s)&&o.push(s);var u=a.indexOf(s);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),V(g.TITLE,t)}(u,d);var p={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,o),metaTags:Z(g.META,a),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:L(g.LINK,["rel","href"],e),metaTags:L(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:L(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:L(g.SCRIPT,["src","innerHTML"],e),styleTags:L(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:A(e,"prioritizeSeoTags")});G.canUseDOM?(t=a,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){W(t,(function(){Y=null}))})):(W(t),Y=null)):B&&(o=B(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var X=["children"],Q=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(R(this.props,"helmetData"),R(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(k.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+k.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,X),l=Object.keys(i).reduce((function(e,t){return e[E[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,a),s){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:l,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,Q),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof U||(a=new U(a.context,a.instances)),a?r.createElement(K,p({},o,{context:a.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,p({},o,{context:e}))}))},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},198:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,k=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case s:return e;default:return t}}case o:return t}}}function E(e){return w(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return E(e)||w(e)===u},t.isConcurrentMode=E,t.isContextConsumer=function(e){return w(e)===c},t.isContextProvider=function(e){return w(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===h},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===l},t.isStrictMode=function(e){return w(e)===i},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===k||e.$$typeof===b)},t.typeOf=w},6237:(e,t,n)=>{"use strict";e.exports=n(198)},1789:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(3442),o=n(7366),a=n(9496);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},8736:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>u,rU:()=>g});var r=n(3442),o=n(4471),a=n(9496),i=n(4047),l=n(7366),s=n(4529),c=n(8624),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=a.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,l.Z)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,a.createElement("a",u)}));var g=m((function(e,t){var n=e.component,o=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,a.createElement(o,h)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,k=e.location,w=e.sensitive,E=e.strict,S=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=k||e.location,i=p(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),L=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:w,strict:E}):null,A=!!(y?y(L,n):L),j="function"==typeof m?m(A):m,N="function"==typeof S?S(A):S;A&&(j=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(j,u),N=(0,l.Z)({},N,f));var R=(0,l.Z)({"aria-current":A&&o||null,className:j,style:N,to:i},C);return b!==v?R.ref=t||_:R.innerRef=_,a.createElement(g,R)}))}))},3442:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>S,TH:()=>O,k6:()=>R,rs:()=>j,s6:()=>v});var r=n(4471),o=n(9496),a=n(507),i=n.n(a),l=n(4047),s=n(8624),c=n(7366),u=n(7720),d=n.n(u),p=(n(6237),n(4529)),f=(n(2535),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=o.createContext||function(e,t){var n,a,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},o.getValue=function(){return this.context[l]?this.context[l].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return c.contextTypes=((a={})[l]=i().object,a),{Provider:s,Consumer:c}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var k={},w=1e4,E=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,l=void 0!==i&&i,s=n.sensitive,c=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=k[n]||(k[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return E<w&&(r[e]=a,E++),a}(n,{end:a,strict:l,sensitive:c}),o=r.regexp,i=r.keys,s=o.exec(e);if(!s)return null;var u=s[0],p=s.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,a=(0,c.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,u=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===o.Children.count(e)}(l)&&(l=null),o.createElement(v.Provider,{value:a},a.match?l?"function"==typeof l?l(a):l:u?o.createElement(u,a):d?d(a):null:"function"==typeof l?l(a):null)}))},t}(o.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function L(e){return function(){(0,s.Z)(!1)}}function A(){}o.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(a.pathname,(0,c.Z)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var N=o.useContext;function R(){return N(b)}function O(){return N(v).location}},1288:(e,t,n)=>{"use strict";var r=n(2767),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var c=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),c=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var k={current:null},w=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,a={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)w.call(t,r)&&!E.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(1===s)a.children=n;else if(1<s){for(var c=Array(s),u=0;u<s;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===a[r]&&(a[r]=s[r]);return{$$typeof:o,type:e,key:i,ref:l,props:a,_owner:k.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var u=r+C(l=e[c],c);s+=T(l,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,u=r+C(l,c++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function L(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function A(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var j={current:null};function N(){var e=j.current;if(null===e)throw Error(f(321));return e}var R={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:k,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:L,forEach:function(e,t,n){L(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return L(e,(function(){t++})),t},toArray:function(e){return L(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=R,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var a=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=k.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)w.call(t,u)&&!E.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){c=Array(u);for(var d=0;d<u;d++)c[d]=arguments[d+2];a.children=c}return{$$typeof:o,type:e.type,key:i,ref:l,props:a,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:A}},t.memo=function(e,t){return{$$typeof:c,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},9496:(e,t,n)=>{"use strict";e.exports=n(1288)},9787:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,u=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==c?setTimeout(n,0,e):(c=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},o=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var k=new MessageChannel,w=k.port2;k.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?w.postMessage(null):(h=!1,g=null)}catch(n){throw w.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,w.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},o=function(){f(b),b=-1}}function E(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<_(o,t)))break e;e[r]=t,e[n]=o,n=r}}function S(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],l=a+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],L=1,A=null,j=3,N=!1,R=!1,O=!1;function P(e){for(var t=S(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,E(C,t)}t=S(T)}}function I(e){if(O=!1,P(e),!R)if(null!==S(C))R=!0,n(D);else{var t=S(T);null!==t&&r(I,t.startTime-e)}}function D(e,n){R=!1,O&&(O=!1,o()),N=!0;var a=j;try{for(P(n),A=S(C);null!==A&&(!(A.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=A.callback;if("function"==typeof i){A.callback=null,j=A.priorityLevel;var l=i(A.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?A.callback=l:A===S(C)&&x(C),P(n)}else x(C);A=S(C)}if(null!==A)var s=!0;else{var c=S(T);null!==c&&r(I,c.startTime-n),s=!1}return s}finally{A=null,j=a,N=!1}}var M=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){R||N||(R=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return j},t.unstable_getFirstCallbackNode=function(){return S(C)},t.unstable_next=function(e){switch(j){case 1:case 2:case 3:var t=3;break;default:t=j}var n=j;j=t;try{return e()}finally{j=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=j;j=e;try{return t()}finally{j=n}},t.unstable_scheduleCallback=function(e,a,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:L++,callback:a,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,E(T,e),null===S(C)&&e===S(T)&&(O?o():O=!0,r(I,i-l))):(e.sortIndex=s,E(C,e),R||N||(R=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=j;return function(){var n=j;j=t;try{return e.apply(this,arguments)}finally{j=n}}}},8051:(e,t,n)=>{"use strict";e.exports=n(9787)},631:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<a.length;s++){var c=a[s];if(!l(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},2978:(e,t,n)=>{"use strict";var r=n(9496);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,u=r[1];return l((function(){o.value=n,o.getSnapshot=t,c(o)&&u({inst:o})}),[e,n,t]),i((function(){return c(o)&&u({inst:o}),e((function(){c(o)&&u({inst:o})}))}),[e]),s(n),n};void 0!==r.useSyncExternalStore&&r.useSyncExternalStore},4241:(e,t,n)=>{"use strict";n(2978)},6809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"IoCuak",tagline:"The simple IoC container",url:"http://cuaklabs.github.io",baseUrl:"/iocuak-docs/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"cuaklabs",projectName:"iocuak-docs",deploymentBranch:"gh-pages",presets:[["classic",{docs:{sidebarPath:"/home/runner/work/iocuak-docs/iocuak-docs/sidebars.js"},blog:{showReadingTime:!0},theme:{customCss:"/home/runner/work/iocuak-docs/iocuak-docs/src/css/custom.css"}}]],themeConfig:{navbar:{title:"IoCuak",logo:{alt:"IoCuak docs",src:"img/logo.svg"},items:[{type:"doc",docId:"tutorial/introduction",position:"left",label:"Tutorial"},{type:"docsVersionDropdown",label:"Versions",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/cuaklabs/iocuak/tree/master/packages/iocuak",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"More",items:[{label:"GitHub",href:"https://github.com/cuaklabs/iocuak/tree/master/packages/iocuak"}]}],copyright:"Copyright \xa9 2023 IoCuak docs, Inc. Built with Docusaurus."},prism:{theme:{plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7366:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():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},r.apply(this,arguments)}n.d(t,{Z:()=>r})},4471:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>o})},4529:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},8624:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/iocuak-docs/docs/0.3.1-01a":{"__comp":"1be78505","__context":{"plugin":"72b1f992"},"versionMetadata":"33762072"},"/iocuak-docs/docs/0.3.1/api/container-b89":{"__comp":"17896441","content":"898848d2"},"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator-73b":{"__comp":"17896441","content":"23221674"},"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator-33c":{"__comp":"17896441","content":"6d4bebe7"},"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator-8f1":{"__comp":"17896441","content":"f5fb8451"},"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator-d46":{"__comp":"17896441","content":"49b0859b"},"/iocuak-docs/docs/0.3.1/api/metadata/introduction-44d":{"__comp":"17896441","content":"8200b41e"},"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider-409":{"__comp":"17896441","content":"0cb0b728"},"/iocuak-docs/docs/0.3.1/concepts/binding-2f1":{"__comp":"17896441","content":"f1668c61"},"/iocuak-docs/docs/0.3.1/concepts/class-metadata-670":{"__comp":"17896441","content":"028691c8"},"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules-3ae":{"__comp":"17896441","content":"ffc29198"},"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction-603":{"__comp":"17896441","content":"b0d4e835"},"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata-f1a":{"__comp":"17896441","content":"429c1a5e"},"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator-411":{"__comp":"17896441","content":"e857c64f"},"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator-045":{"__comp":"17896441","content":"2b7a7e79"},"/iocuak-docs/docs/0.3.1/tutorial/introduction-743":{"__comp":"17896441","content":"98f3f66e"},"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service-8fa":{"__comp":"17896441","content":"263d6723"},"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances-b00":{"__comp":"17896441","content":"05a46859"},"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction-563":{"__comp":"17896441","content":"78ce0ec1"},"/iocuak-docs/docs/0.4.0-719":{"__comp":"1be78505","__context":{"plugin":"72b1f992"},"versionMetadata":"db82a1c0"},"/iocuak-docs/docs/0.4.0/api/container-80d":{"__comp":"17896441","content":"fa3fb5e6"},"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator-7ac":{"__comp":"17896441","content":"3921882b"},"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator-912":{"__comp":"17896441","content":"250fe880"},"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator-698":{"__comp":"17896441","content":"4292aabd"},"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator-045":{"__comp":"17896441","content":"4b1346bc"},"/iocuak-docs/docs/0.4.0/api/metadata/introduction-2c6":{"__comp":"17896441","content":"5c7e0021"},"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider-119":{"__comp":"17896441","content":"e3e01cfb"},"/iocuak-docs/docs/0.4.0/concepts/binding-1f1":{"__comp":"17896441","content":"1bff9566"},"/iocuak-docs/docs/0.4.0/concepts/class-metadata-da0":{"__comp":"17896441","content":"87f77671"},"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules-9df":{"__comp":"17896441","content":"8044f45a"},"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction-4c3":{"__comp":"17896441","content":"f29603b8"},"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata-506":{"__comp":"17896441","content":"7d9bb284"},"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator-14f":{"__comp":"17896441","content":"1c5f3ec8"},"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator-ca4":{"__comp":"17896441","content":"caf8c733"},"/iocuak-docs/docs/0.4.0/tutorial/introduction-39b":{"__comp":"17896441","content":"5b645440"},"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service-646":{"__comp":"17896441","content":"08e8d5fd"},"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances-cad":{"__comp":"17896441","content":"5b54de31"},"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction-db5":{"__comp":"17896441","content":"bcaa6898"},"/iocuak-docs/docs/next-d32":{"__comp":"1be78505","__context":{"plugin":"72b1f992"},"versionMetadata":"935f2afb"},"/iocuak-docs/docs/next/api/container-5e8":{"__comp":"17896441","content":"7e923665"},"/iocuak-docs/docs/next/api/injection/inject-decorator-6f7":{"__comp":"17896441","content":"7733bc07"},"/iocuak-docs/docs/next/api/injection/inject-tag-decorator-08d":{"__comp":"17896441","content":"3654fd5c"},"/iocuak-docs/docs/next/api/injection/injectable-decorator-b88":{"__comp":"17896441","content":"6254d461"},"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator-3fe":{"__comp":"17896441","content":"32336a78"},"/iocuak-docs/docs/next/api/metadata/introduction-888":{"__comp":"17896441","content":"79b7c907"},"/iocuak-docs/docs/next/api/metadata/metadata-provider-4a7":{"__comp":"17896441","content":"70a4eefc"},"/iocuak-docs/docs/next/concepts/binding-0d5":{"__comp":"17896441","content":"2a866bd1"},"/iocuak-docs/docs/next/concepts/class-metadata-d4c":{"__comp":"17896441","content":"3c73646c"},"/iocuak-docs/docs/next/concepts/container-module-metadata-f07":{"__comp":"17896441","content":"0a1d241c"},"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules-8cb":{"__comp":"17896441","content":"806df6bd"},"/iocuak-docs/docs/next/tutorial/container-modules/introduction-70f":{"__comp":"17896441","content":"e1a62a5e"},"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata-734":{"__comp":"17896441","content":"1a546ad0"},"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator-a82":{"__comp":"17896441","content":"555e17e8"},"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator-633":{"__comp":"17896441","content":"3d354aff"},"/iocuak-docs/docs/next/tutorial/introduction-a3d":{"__comp":"17896441","content":"59a64286"},"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service-acf":{"__comp":"17896441","content":"7995d4bf"},"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances-b33":{"__comp":"17896441","content":"158424f1"},"/iocuak-docs/docs/next/tutorial/the-container-object/introduction-d78":{"__comp":"17896441","content":"4614d64c"},"/iocuak-docs/docs-ddf":{"__comp":"1be78505","__context":{"plugin":"72b1f992"},"versionMetadata":"0030fd86"},"/iocuak-docs/docs/api/container-dff":{"__comp":"17896441","content":"2da43288"},"/iocuak-docs/docs/api/injection/inject-decorator-b05":{"__comp":"17896441","content":"9dc3c96b"},"/iocuak-docs/docs/api/injection/inject-tag-decorator-1a4":{"__comp":"17896441","content":"0c8baa8f"},"/iocuak-docs/docs/api/injection/injectable-decorator-ecd":{"__comp":"17896441","content":"c5629734"},"/iocuak-docs/docs/api/injection/injectFromBase-decorator-c13":{"__comp":"17896441","content":"9fbb8af0"},"/iocuak-docs/docs/api/metadata/introduction-b7b":{"__comp":"17896441","content":"58d9cd49"},"/iocuak-docs/docs/api/metadata/metadata-provider-3ed":{"__comp":"17896441","content":"fe5baf42"},"/iocuak-docs/docs/concepts/binding-85f":{"__comp":"17896441","content":"b6b4f634"},"/iocuak-docs/docs/concepts/class-metadata-0f0":{"__comp":"17896441","content":"c8545ad7"},"/iocuak-docs/docs/concepts/container-module-metadata-129":{"__comp":"17896441","content":"c47f43be"},"/iocuak-docs/docs/tutorial/container-modules/creating-modules-797":{"__comp":"17896441","content":"8b238a11"},"/iocuak-docs/docs/tutorial/container-modules/introduction-15d":{"__comp":"17896441","content":"1b5e222d"},"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata-740":{"__comp":"17896441","content":"8fa4da7f"},"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator-734":{"__comp":"17896441","content":"6074383c"},"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator-e55":{"__comp":"17896441","content":"7bd4b37f"},"/iocuak-docs/docs/tutorial/introduction-92e":{"__comp":"17896441","content":"7be4df85"},"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service-975":{"__comp":"17896441","content":"ac95828e"},"/iocuak-docs/docs/tutorial/the-container-object/creating-instances-090":{"__comp":"17896441","content":"79e19905"},"/iocuak-docs/docs/tutorial/the-container-object/introduction-ad6":{"__comp":"17896441","content":"8767fd65"},"/iocuak-docs/-1eb":{"__comp":"1df93b7f","__context":{"plugin":"4b7058cd"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=2733,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.cc04fcf3.js.LICENSE.txt b/assets/js/main.9f620483.js.LICENSE.txt similarity index 100% rename from assets/js/main.cc04fcf3.js.LICENSE.txt rename to assets/js/main.9f620483.js.LICENSE.txt diff --git a/assets/js/main.cc04fcf3.js b/assets/js/main.cc04fcf3.js deleted file mode 100644 index f23c755d5..000000000 --- a/assets/js/main.cc04fcf3.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.cc04fcf3.js.LICENSE.txt */ -(self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[]).push([[179],{9592:(e,t,n)=>{var r={"./":1884};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=9592},8665:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(9496),o=n(7366),a=n(8096),i=n.n(a),l=n(6887);const s={"0030fd86":[()=>n.e(1887).then(n.t.bind(n,7619,19)),"~docs/default/version-0-5-0-metadata-prop-3bc.json",7619],"028691c8":[()=>n.e(8129).then(n.bind(n,4056)),"@site/versioned_docs/version-0.3.1/concepts/class-metadata.md",4056],"05a46859":[()=>n.e(6943).then(n.bind(n,7969)),"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/creating-instances.md",7969],"08e8d5fd":[()=>n.e(2855).then(n.bind(n,1595)),"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/binding-a-service.md",1595],"0a1d241c":[()=>n.e(6334).then(n.bind(n,5887)),"@site/docs/concepts/container-module-metadata.md",5887],"0c8baa8f":[()=>n.e(7378).then(n.bind(n,4592)),"@site/versioned_docs/version-0.5.0/api/injection/inject-tag-decorator.md",4592],"0cb0b728":[()=>n.e(856).then(n.bind(n,1959)),"@site/versioned_docs/version-0.3.1/api/metadata/metadata-provider.md",1959],"158424f1":[()=>n.e(7094).then(n.bind(n,9629)),"@site/docs/tutorial/the-container-object/creating-instances.md",9629],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,1082)),"@theme/DocItem",1082],"1a546ad0":[()=>n.e(4805).then(n.bind(n,7806)),"@site/docs/tutorial/container-modules/loading-modules-from-metadata.md",7806],"1b5e222d":[()=>n.e(4334).then(n.bind(n,8271)),"@site/versioned_docs/version-0.5.0/tutorial/container-modules/introduction.md",8271],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,3028)),"@theme/DocPage",3028],"1bff9566":[()=>n.e(5903).then(n.bind(n,6204)),"@site/versioned_docs/version-0.4.0/concepts/binding.md",6204],"1c5f3ec8":[()=>n.e(5121).then(n.bind(n,7780)),"@site/versioned_docs/version-0.4.0/tutorial/decorating-classes/inject-decorator.md",7780],"1df93b7f":[()=>Promise.all([n.e(532),n.e(3237)]).then(n.bind(n,4065)),"@site/src/pages/index.tsx",4065],23221674:[()=>n.e(3896).then(n.bind(n,9398)),"@site/versioned_docs/version-0.3.1/api/injection/inject-decorator.md",9398],"250fe880":[()=>n.e(9099).then(n.bind(n,1179)),"@site/versioned_docs/version-0.4.0/api/injection/inject-tag-decorator.md",1179],"263d6723":[()=>n.e(8721).then(n.bind(n,9894)),"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/binding-a-service.md",9894],"2a866bd1":[()=>n.e(3970).then(n.bind(n,454)),"@site/docs/concepts/binding.md",454],"2b7a7e79":[()=>n.e(2867).then(n.bind(n,8703)),"@site/versioned_docs/version-0.3.1/tutorial/decorating-classes/injectable-decorator.md",8703],"2da43288":[()=>n.e(2036).then(n.bind(n,9534)),"@site/versioned_docs/version-0.5.0/api/container.md",9534],"32336a78":[()=>n.e(5735).then(n.bind(n,7037)),"@site/docs/api/injection/injectFromBase-decorator.md",7037],33762072:[()=>n.e(7669).then(n.t.bind(n,2154,19)),"~docs/default/version-0-3-1-metadata-prop-266.json",2154],"3654fd5c":[()=>n.e(467).then(n.bind(n,2808)),"@site/docs/api/injection/inject-tag-decorator.md",2808],"3921882b":[()=>n.e(1149).then(n.bind(n,9100)),"@site/versioned_docs/version-0.4.0/api/injection/inject-decorator.md",9100],"3c73646c":[()=>n.e(3824).then(n.bind(n,8743)),"@site/docs/concepts/class-metadata.md",8743],"3d354aff":[()=>n.e(8141).then(n.bind(n,7276)),"@site/docs/tutorial/decorating-classes/injectable-decorator.md",7276],"4292aabd":[()=>n.e(1506).then(n.bind(n,4330)),"@site/versioned_docs/version-0.4.0/api/injection/injectable-decorator.md",4330],"429c1a5e":[()=>n.e(9435).then(n.bind(n,3721)),"@site/versioned_docs/version-0.3.1/tutorial/container-modules/loading-modules-from-metadata.md",3721],"4614d64c":[()=>n.e(9332).then(n.bind(n,5198)),"@site/docs/tutorial/the-container-object/introduction.md",5198],"49b0859b":[()=>n.e(6847).then(n.bind(n,2588)),"@site/versioned_docs/version-0.3.1/api/injection/injectFromBase-decorator.md",2588],"4b1346bc":[()=>n.e(6944).then(n.bind(n,280)),"@site/versioned_docs/version-0.4.0/api/injection/injectFromBase-decorator.md",280],"4b7058cd":[()=>n.e(7278).then(n.t.bind(n,5745,19)),"/home/runner/work/iocuak-docs/iocuak-docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"555e17e8":[()=>n.e(6052).then(n.bind(n,6064)),"@site/docs/tutorial/decorating-classes/inject-decorator.md",6064],"58d9cd49":[()=>n.e(7538).then(n.bind(n,9014)),"@site/versioned_docs/version-0.5.0/api/metadata/introduction.md",9014],"59a64286":[()=>n.e(2140).then(n.bind(n,3069)),"@site/docs/tutorial/introduction.md",3069],"5b54de31":[()=>n.e(378).then(n.bind(n,9905)),"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/creating-instances.md",9905],"5b645440":[()=>n.e(9128).then(n.bind(n,7160)),"@site/versioned_docs/version-0.4.0/tutorial/introduction.md",7160],"5c7e0021":[()=>n.e(1648).then(n.bind(n,6766)),"@site/versioned_docs/version-0.4.0/api/metadata/introduction.md",6766],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"6074383c":[()=>n.e(2344).then(n.bind(n,6928)),"@site/versioned_docs/version-0.5.0/tutorial/decorating-classes/inject-decorator.md",6928],"6254d461":[()=>n.e(5586).then(n.bind(n,3210)),"@site/docs/api/injection/injectable-decorator.md",3210],"6d4bebe7":[()=>n.e(9402).then(n.bind(n,3626)),"@site/versioned_docs/version-0.3.1/api/injection/inject-tag-decorator.md",3626],"70a4eefc":[()=>n.e(7722).then(n.bind(n,1365)),"@site/docs/api/metadata/metadata-provider.md",1365],"72b1f992":[()=>n.e(9823).then(n.t.bind(n,3769,19)),"/home/runner/work/iocuak-docs/iocuak-docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"7733bc07":[()=>n.e(2298).then(n.bind(n,1074)),"@site/docs/api/injection/inject-decorator.md",1074],"78ce0ec1":[()=>n.e(4651).then(n.bind(n,4188)),"@site/versioned_docs/version-0.3.1/tutorial/the-container-object/introduction.md",4188],"7995d4bf":[()=>n.e(4678).then(n.bind(n,894)),"@site/docs/tutorial/the-container-object/binding-a-service.md",894],"79b7c907":[()=>n.e(2419).then(n.bind(n,1997)),"@site/docs/api/metadata/introduction.md",1997],"79e19905":[()=>n.e(513).then(n.bind(n,5517)),"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/creating-instances.md",5517],"7bd4b37f":[()=>n.e(9921).then(n.bind(n,2215)),"@site/versioned_docs/version-0.5.0/tutorial/decorating-classes/injectable-decorator.md",2215],"7be4df85":[()=>n.e(9688).then(n.bind(n,6552)),"@site/versioned_docs/version-0.5.0/tutorial/introduction.md",6552],"7d9bb284":[()=>n.e(4074).then(n.bind(n,1202)),"@site/versioned_docs/version-0.4.0/tutorial/container-modules/loading-modules-from-metadata.md",1202],"7e923665":[()=>n.e(2012).then(n.bind(n,5330)),"@site/docs/api/container.md",5330],"8044f45a":[()=>n.e(581).then(n.bind(n,4951)),"@site/versioned_docs/version-0.4.0/tutorial/container-modules/creating-modules.md",4951],"806df6bd":[()=>n.e(1899).then(n.bind(n,2738)),"@site/docs/tutorial/container-modules/creating-modules.md",2738],"8200b41e":[()=>n.e(9513).then(n.bind(n,3723)),"@site/versioned_docs/version-0.3.1/api/metadata/introduction.md",3723],"8767fd65":[()=>n.e(563).then(n.bind(n,7326)),"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/introduction.md",7326],"87f77671":[()=>n.e(5850).then(n.bind(n,1359)),"@site/versioned_docs/version-0.4.0/concepts/class-metadata.md",1359],"898848d2":[()=>n.e(5533).then(n.bind(n,8962)),"@site/versioned_docs/version-0.3.1/api/container.md",8962],"8b238a11":[()=>n.e(9519).then(n.bind(n,9202)),"@site/versioned_docs/version-0.5.0/tutorial/container-modules/creating-modules.md",9202],"8fa4da7f":[()=>n.e(6204).then(n.bind(n,6531)),"@site/versioned_docs/version-0.5.0/tutorial/container-modules/loading-modules-from-metadata.md",6531],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"98f3f66e":[()=>n.e(3347).then(n.bind(n,5420)),"@site/versioned_docs/version-0.3.1/tutorial/introduction.md",5420],"9dc3c96b":[()=>n.e(3695).then(n.bind(n,8355)),"@site/versioned_docs/version-0.5.0/api/injection/inject-decorator.md",8355],"9fbb8af0":[()=>n.e(8531).then(n.bind(n,2768)),"@site/versioned_docs/version-0.5.0/api/injection/injectFromBase-decorator.md",2768],ac95828e:[()=>n.e(3948).then(n.bind(n,7518)),"@site/versioned_docs/version-0.5.0/tutorial/the-container-object/binding-a-service.md",7518],b0d4e835:[()=>n.e(5127).then(n.bind(n,2024)),"@site/versioned_docs/version-0.3.1/tutorial/container-modules/introduction.md",2024],b6b4f634:[()=>n.e(1391).then(n.bind(n,5643)),"@site/versioned_docs/version-0.5.0/concepts/binding.md",5643],bcaa6898:[()=>n.e(6206).then(n.bind(n,5452)),"@site/versioned_docs/version-0.4.0/tutorial/the-container-object/introduction.md",5452],c47f43be:[()=>n.e(8884).then(n.bind(n,6950)),"@site/versioned_docs/version-0.5.0/concepts/container-module-metadata.md",6950],c5629734:[()=>n.e(3615).then(n.bind(n,6312)),"@site/versioned_docs/version-0.5.0/api/injection/injectable-decorator.md",6312],c8545ad7:[()=>n.e(5628).then(n.bind(n,8174)),"@site/versioned_docs/version-0.5.0/concepts/class-metadata.md",8174],caf8c733:[()=>n.e(9230).then(n.bind(n,7120)),"@site/versioned_docs/version-0.4.0/tutorial/decorating-classes/injectable-decorator.md",7120],db82a1c0:[()=>n.e(494).then(n.t.bind(n,2259,19)),"~docs/default/version-0-4-0-metadata-prop-913.json",2259],e1a62a5e:[()=>n.e(5389).then(n.bind(n,2576)),"@site/docs/tutorial/container-modules/introduction.md",2576],e3e01cfb:[()=>n.e(6024).then(n.bind(n,8527)),"@site/versioned_docs/version-0.4.0/api/metadata/metadata-provider.md",8527],e857c64f:[()=>n.e(1109).then(n.bind(n,4707)),"@site/versioned_docs/version-0.3.1/tutorial/decorating-classes/inject-decorator.md",4707],f1668c61:[()=>n.e(415).then(n.bind(n,6526)),"@site/versioned_docs/version-0.3.1/concepts/binding.md",6526],f29603b8:[()=>n.e(9323).then(n.bind(n,7119)),"@site/versioned_docs/version-0.4.0/tutorial/container-modules/introduction.md",7119],f5fb8451:[()=>n.e(1784).then(n.bind(n,5755)),"@site/versioned_docs/version-0.3.1/api/injection/injectable-decorator.md",5755],fa3fb5e6:[()=>n.e(3095).then(n.bind(n,1566)),"@site/versioned_docs/version-0.4.0/api/container.md",1566],fe5baf42:[()=>n.e(9118).then(n.bind(n,9442)),"@site/versioned_docs/version-0.5.0/api/metadata/metadata-provider.md",9442],ffc29198:[()=>n.e(5360).then(n.bind(n,3729)),"@site/versioned_docs/version-0.3.1/tutorial/container-modules/creating-modules.md",3729]};function c(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(9082),d=n(6553);function p(e,t){if("*"===e)return i()({loading:c,loader:()=>n.e(9952).then(n.bind(n,9952)),modules:["@theme/NotFound"],webpack:()=>[9952],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=l[`${e}-${t}`],p={},f=[],m=[],h=(0,u.Z)(a);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{a=a[e]})),a[l[l.length-1]]=o}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,o.Z)({},i,n)))}})}const f=[{path:"/iocuak-docs/docs/0.3.1",component:p("/iocuak-docs/docs/0.3.1","01a"),routes:[{path:"/iocuak-docs/docs/0.3.1/api/container",component:p("/iocuak-docs/docs/0.3.1/api/container","b89"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator",component:p("/iocuak-docs/docs/0.3.1/api/injection/inject-decorator","73b"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator",component:p("/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator","33c"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator",component:p("/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator","8f1"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator",component:p("/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator","d46"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/metadata/introduction",component:p("/iocuak-docs/docs/0.3.1/api/metadata/introduction","44d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider",component:p("/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider","409"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/concepts/binding",component:p("/iocuak-docs/docs/0.3.1/concepts/binding","2f1"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/concepts/class-metadata",component:p("/iocuak-docs/docs/0.3.1/concepts/class-metadata","670"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules",component:p("/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules","3ae"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction",component:p("/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction","603"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata",component:p("/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata","f1a"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator",component:p("/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator","411"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator",component:p("/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator","045"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/introduction",component:p("/iocuak-docs/docs/0.3.1/tutorial/introduction","743"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service",component:p("/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service","8fa"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances",component:p("/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances","b00"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction",component:p("/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction","563"),exact:!0,sidebar:"sidebar"}]},{path:"/iocuak-docs/docs/0.4.0",component:p("/iocuak-docs/docs/0.4.0","719"),routes:[{path:"/iocuak-docs/docs/0.4.0/api/container",component:p("/iocuak-docs/docs/0.4.0/api/container","80d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator",component:p("/iocuak-docs/docs/0.4.0/api/injection/inject-decorator","7ac"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator",component:p("/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator","912"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator",component:p("/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator","698"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator",component:p("/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator","045"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/metadata/introduction",component:p("/iocuak-docs/docs/0.4.0/api/metadata/introduction","2c6"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider",component:p("/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider","119"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/concepts/binding",component:p("/iocuak-docs/docs/0.4.0/concepts/binding","1f1"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/concepts/class-metadata",component:p("/iocuak-docs/docs/0.4.0/concepts/class-metadata","da0"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules",component:p("/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules","9df"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction",component:p("/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction","4c3"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata",component:p("/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata","506"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator",component:p("/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator","14f"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator",component:p("/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator","ca4"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/introduction",component:p("/iocuak-docs/docs/0.4.0/tutorial/introduction","39b"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service",component:p("/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service","646"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances",component:p("/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances","cad"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction",component:p("/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction","db5"),exact:!0,sidebar:"sidebar"}]},{path:"/iocuak-docs/docs/next",component:p("/iocuak-docs/docs/next","d32"),routes:[{path:"/iocuak-docs/docs/next/api/container",component:p("/iocuak-docs/docs/next/api/container","5e8"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/injection/inject-decorator",component:p("/iocuak-docs/docs/next/api/injection/inject-decorator","6f7"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/injection/inject-tag-decorator",component:p("/iocuak-docs/docs/next/api/injection/inject-tag-decorator","08d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/injection/injectable-decorator",component:p("/iocuak-docs/docs/next/api/injection/injectable-decorator","b88"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator",component:p("/iocuak-docs/docs/next/api/injection/injectFromBase-decorator","3fe"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/metadata/introduction",component:p("/iocuak-docs/docs/next/api/metadata/introduction","888"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/api/metadata/metadata-provider",component:p("/iocuak-docs/docs/next/api/metadata/metadata-provider","4a7"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/concepts/binding",component:p("/iocuak-docs/docs/next/concepts/binding","0d5"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/concepts/class-metadata",component:p("/iocuak-docs/docs/next/concepts/class-metadata","d4c"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/concepts/container-module-metadata",component:p("/iocuak-docs/docs/next/concepts/container-module-metadata","f07"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules",component:p("/iocuak-docs/docs/next/tutorial/container-modules/creating-modules","8cb"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/container-modules/introduction",component:p("/iocuak-docs/docs/next/tutorial/container-modules/introduction","70f"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata",component:p("/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata","734"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator",component:p("/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator","a82"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator",component:p("/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator","633"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/introduction",component:p("/iocuak-docs/docs/next/tutorial/introduction","a3d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service",component:p("/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service","acf"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances",component:p("/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances","b33"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/next/tutorial/the-container-object/introduction",component:p("/iocuak-docs/docs/next/tutorial/the-container-object/introduction","d78"),exact:!0,sidebar:"sidebar"}]},{path:"/iocuak-docs/docs",component:p("/iocuak-docs/docs","ddf"),routes:[{path:"/iocuak-docs/docs/api/container",component:p("/iocuak-docs/docs/api/container","dff"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/injection/inject-decorator",component:p("/iocuak-docs/docs/api/injection/inject-decorator","b05"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/injection/inject-tag-decorator",component:p("/iocuak-docs/docs/api/injection/inject-tag-decorator","1a4"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/injection/injectable-decorator",component:p("/iocuak-docs/docs/api/injection/injectable-decorator","ecd"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/injection/injectFromBase-decorator",component:p("/iocuak-docs/docs/api/injection/injectFromBase-decorator","c13"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/metadata/introduction",component:p("/iocuak-docs/docs/api/metadata/introduction","b7b"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/api/metadata/metadata-provider",component:p("/iocuak-docs/docs/api/metadata/metadata-provider","3ed"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/concepts/binding",component:p("/iocuak-docs/docs/concepts/binding","85f"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/concepts/class-metadata",component:p("/iocuak-docs/docs/concepts/class-metadata","0f0"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/concepts/container-module-metadata",component:p("/iocuak-docs/docs/concepts/container-module-metadata","129"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/container-modules/creating-modules",component:p("/iocuak-docs/docs/tutorial/container-modules/creating-modules","797"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/container-modules/introduction",component:p("/iocuak-docs/docs/tutorial/container-modules/introduction","15d"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata",component:p("/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata","740"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator",component:p("/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator","734"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator",component:p("/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator","e55"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/introduction",component:p("/iocuak-docs/docs/tutorial/introduction","92e"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service",component:p("/iocuak-docs/docs/tutorial/the-container-object/binding-a-service","975"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/the-container-object/creating-instances",component:p("/iocuak-docs/docs/tutorial/the-container-object/creating-instances","090"),exact:!0,sidebar:"sidebar"},{path:"/iocuak-docs/docs/tutorial/the-container-object/introduction",component:p("/iocuak-docs/docs/tutorial/the-container-object/introduction","ad6"),exact:!0,sidebar:"sidebar"}]},{path:"/iocuak-docs/",component:p("/iocuak-docs/","1eb"),exact:!0},{path:"*",component:p("*")}]},9226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(9496);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},8255:(e,t,n)=>{"use strict";var r=n(9496),o=n(7995),a=n(8736),i=n(8663),l=n(6582);const s=[n(7687),n(4242),n(3348),n(2630)];var c=n(8665),u=n(3442),d=n(1789);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7366),m=n(5879),h=n(9061),g=n(1956),b=n(1073),v=n(4388),y=n(2932),k=n(2959),w=n(1037),E=n(7727);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),o=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,u.TH)();return e+(0,g.Z)(t)}(),a=t?`${n}${t}`:o;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:k.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(E.Z,{tag:w.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(9226),L=n(8378);function j(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),j("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?j("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=j("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const P=O,I="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${I}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${D}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[F]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:I}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=a[o];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3949);function H(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(P,{location:T(t)},e)))))}var G=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(9082);const W=new Set,Y=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,X={prefetch(e){if(!(e=>!K()&&!Y.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!Y.has(e))(e)&&(Y.add(e),R(e))},Q=Object.freeze(X);if(l.Z.canUseDOM){window.docusaurus=Q;const e=o.hydrate;R(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},8378:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(9496),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/iocuak-docs/docs","versions":[{"name":"current","label":"Next","isLast":false,"path":"/iocuak-docs/docs/next","mainDocId":"tutorial/introduction","docs":[{"id":"api/container","path":"/iocuak-docs/docs/next/api/container","sidebar":"sidebar"},{"id":"api/injection/inject-decorator","path":"/iocuak-docs/docs/next/api/injection/inject-decorator","sidebar":"sidebar"},{"id":"api/injection/inject-tag-decorator","path":"/iocuak-docs/docs/next/api/injection/inject-tag-decorator","sidebar":"sidebar"},{"id":"api/injection/injectable-decorator","path":"/iocuak-docs/docs/next/api/injection/injectable-decorator","sidebar":"sidebar"},{"id":"api/injection/injectFromBase-decorator","path":"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator","sidebar":"sidebar"},{"id":"api/metadata/introduction","path":"/iocuak-docs/docs/next/api/metadata/introduction","sidebar":"sidebar"},{"id":"api/metadata/metadata-provider","path":"/iocuak-docs/docs/next/api/metadata/metadata-provider","sidebar":"sidebar"},{"id":"concepts/binding","path":"/iocuak-docs/docs/next/concepts/binding","sidebar":"sidebar"},{"id":"concepts/class-metadata","path":"/iocuak-docs/docs/next/concepts/class-metadata","sidebar":"sidebar"},{"id":"concepts/container-module-metadata","path":"/iocuak-docs/docs/next/concepts/container-module-metadata","sidebar":"sidebar"},{"id":"tutorial/container-modules/creating-modules","path":"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules","sidebar":"sidebar"},{"id":"tutorial/container-modules/introduction","path":"/iocuak-docs/docs/next/tutorial/container-modules/introduction","sidebar":"sidebar"},{"id":"tutorial/container-modules/loading-modules-from-metadata","path":"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/inject-decorator","path":"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/injectable-decorator","path":"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator","sidebar":"sidebar"},{"id":"tutorial/introduction","path":"/iocuak-docs/docs/next/tutorial/introduction","sidebar":"sidebar"},{"id":"tutorial/the-container-object/binding-a-service","path":"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service","sidebar":"sidebar"},{"id":"tutorial/the-container-object/creating-instances","path":"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances","sidebar":"sidebar"},{"id":"tutorial/the-container-object/introduction","path":"/iocuak-docs/docs/next/tutorial/the-container-object/introduction","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/iocuak-docs/docs/next/tutorial/introduction","label":"tutorial/introduction"}}}},{"name":"0.5.0","label":"0.5.0","isLast":true,"path":"/iocuak-docs/docs","mainDocId":"tutorial/introduction","docs":[{"id":"api/container","path":"/iocuak-docs/docs/api/container","sidebar":"sidebar"},{"id":"api/injection/inject-decorator","path":"/iocuak-docs/docs/api/injection/inject-decorator","sidebar":"sidebar"},{"id":"api/injection/inject-tag-decorator","path":"/iocuak-docs/docs/api/injection/inject-tag-decorator","sidebar":"sidebar"},{"id":"api/injection/injectable-decorator","path":"/iocuak-docs/docs/api/injection/injectable-decorator","sidebar":"sidebar"},{"id":"api/injection/injectFromBase-decorator","path":"/iocuak-docs/docs/api/injection/injectFromBase-decorator","sidebar":"sidebar"},{"id":"api/metadata/introduction","path":"/iocuak-docs/docs/api/metadata/introduction","sidebar":"sidebar"},{"id":"api/metadata/metadata-provider","path":"/iocuak-docs/docs/api/metadata/metadata-provider","sidebar":"sidebar"},{"id":"concepts/binding","path":"/iocuak-docs/docs/concepts/binding","sidebar":"sidebar"},{"id":"concepts/class-metadata","path":"/iocuak-docs/docs/concepts/class-metadata","sidebar":"sidebar"},{"id":"concepts/container-module-metadata","path":"/iocuak-docs/docs/concepts/container-module-metadata","sidebar":"sidebar"},{"id":"tutorial/container-modules/creating-modules","path":"/iocuak-docs/docs/tutorial/container-modules/creating-modules","sidebar":"sidebar"},{"id":"tutorial/container-modules/introduction","path":"/iocuak-docs/docs/tutorial/container-modules/introduction","sidebar":"sidebar"},{"id":"tutorial/container-modules/loading-modules-from-metadata","path":"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/inject-decorator","path":"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/injectable-decorator","path":"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator","sidebar":"sidebar"},{"id":"tutorial/introduction","path":"/iocuak-docs/docs/tutorial/introduction","sidebar":"sidebar"},{"id":"tutorial/the-container-object/binding-a-service","path":"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service","sidebar":"sidebar"},{"id":"tutorial/the-container-object/creating-instances","path":"/iocuak-docs/docs/tutorial/the-container-object/creating-instances","sidebar":"sidebar"},{"id":"tutorial/the-container-object/introduction","path":"/iocuak-docs/docs/tutorial/the-container-object/introduction","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/iocuak-docs/docs/tutorial/introduction","label":"version-0.5.0/tutorial/introduction"}}}},{"name":"0.4.0","label":"0.4.0","isLast":false,"path":"/iocuak-docs/docs/0.4.0","mainDocId":"tutorial/introduction","docs":[{"id":"api/container","path":"/iocuak-docs/docs/0.4.0/api/container","sidebar":"sidebar"},{"id":"api/injection/inject-decorator","path":"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator","sidebar":"sidebar"},{"id":"api/injection/inject-tag-decorator","path":"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator","sidebar":"sidebar"},{"id":"api/injection/injectable-decorator","path":"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator","sidebar":"sidebar"},{"id":"api/injection/injectFromBase-decorator","path":"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator","sidebar":"sidebar"},{"id":"api/metadata/introduction","path":"/iocuak-docs/docs/0.4.0/api/metadata/introduction","sidebar":"sidebar"},{"id":"api/metadata/metadata-provider","path":"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider","sidebar":"sidebar"},{"id":"concepts/binding","path":"/iocuak-docs/docs/0.4.0/concepts/binding","sidebar":"sidebar"},{"id":"concepts/class-metadata","path":"/iocuak-docs/docs/0.4.0/concepts/class-metadata","sidebar":"sidebar"},{"id":"tutorial/container-modules/creating-modules","path":"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules","sidebar":"sidebar"},{"id":"tutorial/container-modules/introduction","path":"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction","sidebar":"sidebar"},{"id":"tutorial/container-modules/loading-modules-from-metadata","path":"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/inject-decorator","path":"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/injectable-decorator","path":"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator","sidebar":"sidebar"},{"id":"tutorial/introduction","path":"/iocuak-docs/docs/0.4.0/tutorial/introduction","sidebar":"sidebar"},{"id":"tutorial/the-container-object/binding-a-service","path":"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service","sidebar":"sidebar"},{"id":"tutorial/the-container-object/creating-instances","path":"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances","sidebar":"sidebar"},{"id":"tutorial/the-container-object/introduction","path":"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/iocuak-docs/docs/0.4.0/tutorial/introduction","label":"version-0.4.0/tutorial/introduction"}}}},{"name":"0.3.1","label":"0.3.1","isLast":false,"path":"/iocuak-docs/docs/0.3.1","mainDocId":"tutorial/introduction","docs":[{"id":"api/container","path":"/iocuak-docs/docs/0.3.1/api/container","sidebar":"sidebar"},{"id":"api/injection/inject-decorator","path":"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator","sidebar":"sidebar"},{"id":"api/injection/inject-tag-decorator","path":"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator","sidebar":"sidebar"},{"id":"api/injection/injectable-decorator","path":"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator","sidebar":"sidebar"},{"id":"api/injection/injectFromBase-decorator","path":"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator","sidebar":"sidebar"},{"id":"api/metadata/introduction","path":"/iocuak-docs/docs/0.3.1/api/metadata/introduction","sidebar":"sidebar"},{"id":"api/metadata/metadata-provider","path":"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider","sidebar":"sidebar"},{"id":"concepts/binding","path":"/iocuak-docs/docs/0.3.1/concepts/binding","sidebar":"sidebar"},{"id":"concepts/class-metadata","path":"/iocuak-docs/docs/0.3.1/concepts/class-metadata","sidebar":"sidebar"},{"id":"tutorial/container-modules/creating-modules","path":"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules","sidebar":"sidebar"},{"id":"tutorial/container-modules/introduction","path":"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction","sidebar":"sidebar"},{"id":"tutorial/container-modules/loading-modules-from-metadata","path":"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/inject-decorator","path":"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator","sidebar":"sidebar"},{"id":"tutorial/decorating-classes/injectable-decorator","path":"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator","sidebar":"sidebar"},{"id":"tutorial/introduction","path":"/iocuak-docs/docs/0.3.1/tutorial/introduction","sidebar":"sidebar"},{"id":"tutorial/the-container-object/binding-a-service","path":"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service","sidebar":"sidebar"},{"id":"tutorial/the-container-object/creating-instances","path":"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances","sidebar":"sidebar"},{"id":"tutorial/the-container-object/introduction","path":"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/iocuak-docs/docs/0.3.1/tutorial/introduction","label":"version-0.3.1/tutorial/introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"}}}'),c={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},u=r.createContext(c);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:c},t)}},3949:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(9496),o=n(6582),a=n(5879),i=n(5908),l=n(226);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(c,{error:t}))}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function u(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6582:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5879:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496),o=n(8663);function a(e){return r.createElement(o.ql,e)}},9385:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7366),o=n(9496),a=n(8736),i=n(5908),l=n(9061),s=n(4272),c=n(6582);const u=o.createContext({collectLink:()=>{}});var d=n(1956);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:k}}=(0,l.Z)(),{withBaseUrl:w}=(0,d.C)(),E=(0,o.useContext)(u),S=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>S.current));const x=p||f;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?w(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:k}));const L=(0,o.useRef)(!1),j=n?a.OL:a.rU,N=c.Z.canUseIntersectionObserver,R=(0,o.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,o.useEffect)((()=>(!N&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&R.current&&R.current.disconnect()})),[R,T,N,_]);const P=T?.startsWith("#")??!1,I=!T||!_||P;return I||g||E.collectLink(T),I?o.createElement("a",(0,r.Z)({ref:S,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):o.createElement(j,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,N&&e&&_&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),R.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const f=o.forwardRef(p)},3071:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=()=>null},2878:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(9496);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return a[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,o(l,a))}},2418:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},4272:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},1956:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(9496),o=n(9061),a=n(4272);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9061:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496),o=n(8378);function a(){return(0,r.useContext)(o._)}},1768:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496),o=n(9226);function a(){return(0,r.useContext)(o._)}},9082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},6553:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(9496);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},1314:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>p,_r:()=>u,Jo:()=>g,zh:()=>d,yW:()=>m,gB:()=>f});var r=n(3442),o=n(9061),a=n(2418);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function h(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8096:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return 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},i.apply(this,arguments)}var l=n(9496),s=n(507),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),a(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}a(g,"propTypes",{report:s.func.isRequired}),a(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},3348:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(9981),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},4242:(e,t,n)=>{"use strict";n.r(t);var r=n(999),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(9592)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},8370:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496);const o={iconExternalLink:"iconExternalLink_jIwi"};function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},226:(e,t,n)=>{"use strict";n.d(t,{Z:()=>dt});var r=n(9496),o=n(5924),a=n(3949),i=n(4388),l=n(7366),s=n(3442),c=n(2878),u=n(5419);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,c.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:o}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:o}),t))}var g=n(6694),b=n(2959);const v={skipToContent:"skipToContent_FWgj"};function y(){return r.createElement(h,{className:v.skipToContent})}var k=n(1073),w=n(8971);function E(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_Hn4z"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,c.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.Z)("clean-btn close",S.closeButton,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_Tgtk"};function C(e){const{announcementBar:t}=(0,k.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,o.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_AKjL",announcementBarPlaceholder:"announcementBarPlaceholder__bmq",announcementBarClose:"announcementBarClose_BiZz",announcementBarContent:"announcementBarContent_p9m5"};function A(){const{announcementBar:e}=(0,k.L)(),{isActive:t,close:n}=(0,w.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(3795),j=n(4770);var N=n(2194),R=n(4866);const O=r.createContext(null);function P(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,R.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,N.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return r.createElement(O.Provider,{value:n},t)}function I(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function D(){const e=(0,r.useContext)(O);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:I(a)})),[o,a,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:a}=e;const{shown:i}=D();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var F=n(3144),B=n(1768);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_Xqq4",toggleButton:"toggleButton_CURL",darkToggleIcon:"darkToggleIcon_YNUG",lightToggleIcon:"lightToggleIcon_tmUv",toggleButtonDisabled:"toggleButtonDisabled_Le21"};function q(e){let{className:t,buttonClassName:n,value:a,onChange:i}=e;const l=(0,B.Z)(),s=(0,c.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===a?(0,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.Z)($.toggle,t)},r.createElement("button",{className:(0,o.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===a?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,o.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,o.Z)($.toggleIcon,$.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_GEVX"};function Z(e){let{className:t}=e;const n=(0,k.L)().navbar.style,o=(0,k.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,F.I)();return o?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:a,onChange:i})}var V=n(6262);function W(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Y(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,c.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(E,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(Y,null))}var X=n(9385),Q=n(1956),J=n(4272);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(8370);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:a,label:i,html:s,isDropdownLink:c,prependBaseUrlToHref:u,...d}=e;const p=(0,Q.Z)(o),f=(0,Q.Z)(t),m=(0,Q.Z)(a,{forcePrependBaseUrl:!0}),h=i&&a&&!(0,J.Z)(a),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,c&&{width:12,height:12}))};return a?r.createElement(X.Z,(0,l.Z)({href:u?m:a},d,g)):r.createElement(X.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...a}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},a));return n?r.createElement("li",null,i):i}function oe(e){let{className:t,isDropdownItem:n,...a}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,o.Z)("menu__link",t)},a)))}function ae(e){let{mobile:t=!1,position:n,...o}=e;const a=t?oe:re;return r.createElement(a,(0,l.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(7482),le=n(1641),se=n(9061);function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const c=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[c]),r.createElement("div",{ref:c,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:s.to?void 0:"#",className:(0,o.Z)("navbar__link",a)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(xe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:a,onClick:i,...c}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},c,{onClick:e=>{e.preventDefault(),f()}}),c.children??c.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(xe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const o=t?de:ue;return r.createElement(o,n)}var fe=n(2932);function me(e){let{width:t=20,height:n=20,...o}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage__gi4";var ge=n(3071);const be={searchBox:"searchBox_MNsY"};function ve(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.Z)(n,be.searchBox)},t)}var ye=n(1314),ke=n(7260);var we=n(5245);const Ee=e=>e.docs.find((t=>t.id===e.mainDocId));const Se={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...a}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...o],g=t?(0,c.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,l.Z)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(ve,{className:n},r.createElement(ge.Z,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,o.Z)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,ye.Iw)(o),s=(0,ke.vY)(t,o);return null===s?null:r.createElement(ae,(0,l.Z)({exact:!0},a,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,ye.Iw)(o),s=(0,ke.oz)(t,o).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(ae,(0,l.Z)({exact:!0},a,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...a}=e;const i=(0,ke.lO)(o)[0],s=t??i.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(ae,(0,l.Z)({},a,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:a,dropdownItemsAfter:i,...u}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,ye.Iw)(n),m=(0,ye.gB)(n),{savePreferredVersionName:h}=(0,we.J)(n),g=[...a,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Ee(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,ke.lO)(n)[0],v=t&&g.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ee(b).path;return g.length<=1?r.createElement(ae,(0,l.Z)({},u,{mobile:t,label:v,to:y,isActive:o?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},u,{mobile:t,label:v,to:y,items:g,isActive:o?()=>!1:void 0}))}};function xe(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Se[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}function _e(){const e=(0,L.e)(),t=(0,k.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(xe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ce(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(c.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Te(){const e=0===(0,k.L)().navbar.items.length,t=D();return r.createElement(r.Fragment,null,!e&&r.createElement(Ce,{onClick:()=>t.hide()}),t.content)}function Ae(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(M,{header:r.createElement(K,null),primaryMenu:r.createElement(_e,null),secondaryMenu:r.createElement(Te,null)}):null}const Le={navbarHideable:"navbarHideable_fXWX",navbarHidden:"navbarHidden_v5Yw"};function je(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,o.Z)("navbar-sidebar__backdrop",e.className)}))}function Ne(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,k.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,j.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-a.current,c=window.innerHeight;l&&i>=l?n(!1):i+c<s&&n(!0)})),(0,u.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,c.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!s&&Le.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown})},t,r.createElement(je,{onClick:i.toggle}),r.createElement(Ae,null))}var Re=n(5908);const Oe={errorBoundaryError:"errorBoundaryError_Lq0i"};function Pe(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(c.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function Ie(e){let{error:t}=e;const n=(0,Re.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Oe.errorBoundaryError},n)}class De extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Me="right";function Fe(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,l.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Be(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,c.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Fe,null))}const ze={colorModeToggle:"colorModeToggle_z0Ih"};function Ue(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(De,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(xe,e)))))}function $e(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function qe(){const e=(0,L.e)(),t=(0,k.L)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??Me)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return r.createElement($e,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Be,null),r.createElement(W,null),r.createElement(Ue,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Ue,{items:o}),r.createElement(Z,{className:ze.colorModeToggle}),!a&&r.createElement(ve,null,r.createElement(ge.Z,null)))})}function He(){return r.createElement(Ne,null,r.createElement(qe,null))}function Ge(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...s}=t,c=(0,Q.Z)(n),u=(0,Q.Z)(o,{forcePrependBaseUrl:!0});return r.createElement(X.Z,(0,l.Z)({className:"footer__link-item"},o?{href:i?u:o}:{to:c},s),a,o&&!(0,J.Z)(o)&&r.createElement(te.Z,null))}function Ze(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Ge,{item:t}))}function Ve(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(Ze,{key:t,item:e})))))}function We(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Ve,{key:t,column:e}))))}function Ye(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function Ke(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Ge,{item:t})}function Xe(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(Ke,{item:e}),t.length!==n+1&&r.createElement(Ye,null))))))}function Qe(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(We,{columns:t}):r.createElement(Xe,{links:t})}var Je=n(297);const et={footerLogoLink:"footerLogoLink_mr6Y"};function tt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,Q.C)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(Je.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function nt(e){let{logo:t}=e;return t.href?r.createElement(X.Z,{href:t.href,className:et.footerLogoLink,target:t.target},r.createElement(tt,{logo:t})):r.createElement(tt,{logo:t})}function rt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function at(){const{footer:e}=(0,k.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement(ot,{style:a,links:n&&n.length>0&&r.createElement(Qe,{links:n}),logo:o&&r.createElement(nt,{logo:o}),copyright:t&&r.createElement(rt,{copyright:t})})}const it=r.memo(at),lt=(0,N.Qc)([F.S,w.pl,j.OC,we.L5,i.VC,function(e){let{children:t}=e;return r.createElement(R.n2,null,r.createElement(L.M,null,r.createElement(P,null,t)))}]);function st(e){let{children:t}=e;return r.createElement(lt,null,t)}function ct(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(c.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Pe,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(Ie,{error:t})))))}const ut={mainWrapper:"mainWrapper_BOxT"};function dt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:c}=e;return(0,b.t)(),r.createElement(st,null,r.createElement(i.d,{title:s,description:c}),r.createElement(y,null),r.createElement(A,null),r.createElement(He,null),r.createElement("div",{id:d,className:(0,o.Z)(g.k.wrapper.main,ut.mainWrapper,l)},r.createElement(a.Z,{fallback:e=>r.createElement(ct,e)},t)),!n&&r.createElement(it,null))}},6262:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7366),o=n(9496),a=n(9385),i=n(1956),l=n(9061),s=n(1073),c=n(297);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=o.createElement(c.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:c}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)(c?.href||"/"),h=n?"":t,g=c?.alt??h;return o.createElement(a.Z,(0,r.Z)({to:m},f,c?.target&&{target:c.target}),c&&o.createElement(u,{logo:c,alt:g,imageClassName:d}),null!=n&&o.createElement("b",{className:p},n))}},7727:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(9496),o=n(5879);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},297:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7366),o=n(9496),a=n(5924),i=n(1768),l=n(3144);const s={themedImage:"themedImage_mt67","themedImage--light":"themedImage--light_fX3w","themedImage--dark":"themedImage--dark_uZcq"};function c(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:c,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,f.map((e=>o.createElement("img",(0,r.Z)({key:e,src:c[e],alt:d,className:(0,a.Z)(s.themedImage,s[`themedImage--${e}`],u)},p)))))}},7482:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7366),o=n(9496),a=n(6582),i=n(1258);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(t??!1),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const c={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?c:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return d(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!a.Z.canUseDOM)return e?c:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const c=(0,o.useRef)(null);return p({collapsibleRef:c,collapsed:n,animation:a}),o.createElement(t,{ref:c,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(c.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[l,s]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&s(t)}),[a,t]),a?o.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return o.createElement(r,n)}},8971:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(9496),o=n(1768),a=n(389),i=n(2194),l=n(1073);const s=(0,a.WA)("docusaurus.announcement.dismiss"),c=(0,a.WA)("docusaurus.announcement.id"),u=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{a(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&d(!1),!r&&u()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},3144:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(9496),o=n(6582),a=n(2194),i=n(389),l=n(1073);const s=r.createContext(void 0),c="theme",u=(0,i.WA)(c),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{u.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,a]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=u.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[o,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5245:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g});var r=n(9496),o=n(1314),a=n(2418),i=n(1073),l=n(7260),s=n(2194),c=n(389);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,c.WA)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(u(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},9481:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(9496),o=n(2194);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},3795:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(9496),o=n(4866),a=n(8917),i=n(3442),l=(n(4241),n(2194));function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(1073);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,c.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const u=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function p(e){let{children:t}=e;const n=d();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},4866:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(9496),o=n(2194);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},2959:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(9496);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},8917:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(9496),o=n(6582);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return o.Z.canUseDOM?window.innerWidth>i?a.desktop:a.mobile:a.ssr}const s=!1;function c(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},6694:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1258:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},7260:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>h,cE:()=>d,hI:()=>w,lO:()=>v,vY:()=>k,oz:()=>y,s1:()=>b});var r=n(9496),o=n(3442),a=n(1789),i=n(1314),l=n(5245),s=n(9481);function c(e){return Array.from(new Set(e))}var u=n(1641);const d=!!i._r;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const f=(e,t)=>void 0!==e&&(0,u.Mg)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||m(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,u.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,u.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function b(){const e=(0,s.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?g({sidebarItems:e.items,pathname:t}):null}function v(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,o].filter(Boolean))),[t,n,o])}function y(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function k(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function w(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,l=i.find((e=>(0,o.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,c=s?n.docsSidebars[s]:void 0;return{docElement:(0,a.H)(i),sidebarName:s,sidebarItems:c}}},4388:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var r=n(9496),o=n(5924),a=n(5879),i=n(6553);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(1956),c=n(9061);function u(e){let{title:t,description:n,keywords:o,image:i,children:l}=e;const u=function(e){const{siteConfig:t}=(0,c.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,o.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,o.Z)(a,i)},t)}},2194:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>c,Ql:()=>s,i6:()=>l,zX:()=>a});var r=n(9496);const o=n(6582).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1641:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(9496),o=n(8665),a=n(9061);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},4770:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d});var r=n(9496),o=n(6582),a=n(1768),i=n(2194);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function c(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),o=(0,r.useRef)(u()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},1037:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>o});n(9061);const r="default";function o(e,t){return`docs-${e}-${t}`}},389:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(9496),n(4241);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},2932:(e,t,n)=>{"use strict";n.d(t,{l:()=>a});var r=n(9061),o=n(3442);function a(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:a}}=(0,r.Z)(),{pathname:i}=(0,o.TH)(),l=a===n?e:e.replace(`/${a}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:o}=e;return`${o?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},5419:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(9496),o=n(3442),a=n(2194);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},1073:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(9061);function o(){return(0,r.Z)().siteConfig.themeConfig}},2523:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},5283:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},5908:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(2523);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(5283);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},5924:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}n.d(t,{Z:()=>o});const o=function(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},4047:(e,t,n)=>{"use strict";n.d(t,{lX:()=>k,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(7366);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&o(e),s=t&&o(t),c=l||s;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8624);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function k(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,k=void 0!==c&&c,w=i.getUserConfirmation,E=void 0===w?g:w,S=i.keyLength,x=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return _&&(a=u(a,_)),f(a,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function N(){O(C(y()))}var R=!1;function O(e){if(R)R=!1,L();else{A.confirmTransitionTo(e,"POP",E,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(R=!0,M(o))}(e)}))}}var P=C(y()),I=[P.key];function D(e){return _+p(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(b,j),a&&window.addEventListener(v,N)):0===F&&(window.removeEventListener(b,j),a&&window.removeEventListener(v,N))}var z=!1;var U={length:n.length,action:"POP",location:P,createHref:D,push:function(e,t){var r="PUSH",a=f(e,t,T(),U.location);A.confirmTransitionTo(a,r,E,(function(e){if(e){var t=D(a),i=a.key,l=a.state;if(o)if(n.pushState({key:i,state:l},null,t),k)window.location.href=t;else{var s=I.indexOf(U.location.key),c=I.slice(0,s+1);c.push(a.key),I=c,L({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,T(),U.location);A.confirmTransitionTo(a,r,E,(function(e){if(e){var t=D(a),i=a.key,l=a.state;if(o)if(n.replaceState({key:i,state:l},null,t),k)window.location.replace(t);else{var s=I.indexOf(U.location.key);-1!==s&&(I[s]=a.key),L({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var w="hashchange",E={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?g:o,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=E[c],y=v.encodePath,k=v.decodePath;function C(){var e=k(x());return b&&(e=u(e,b)),f(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,j=null;function N(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var o=C(),i=z.location;if(!L&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===p(o))return;j=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,a,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(L=!0,D(o))}(e)}))}}(o)}}var R=x(),O=y(R);R!==O&&_(O);var P=C(),I=[p(P)];function D(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(w,N):0===M&&window.removeEventListener(w,N)}var B=!1;var z={length:t.length,action:"POP",location:P,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);if(x()!==o){j=t,function(e){window.location.hash=e}(o);var a=I.lastIndexOf(p(z.location)),i=I.slice(0,a+1);i.push(t),I=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);x()!==o&&(j=t,_(o));var a=I.indexOf(p(z.location));-1!==a&&(I[a]=t),A({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,c=void 0===s?6:s,u=m();function d(e){(0,r.Z)(k,e),k.length=k.entries.length,u.notifyListeners(k.location,k.action)}function h(){return Math.random().toString(36).substr(2,c)}var g=T(l,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(k.index+e,0,k.entries.length-1),r=k.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var k={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",o=f(e,t,h(),k.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=k.index+1,n=k.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),k.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(k.entries[k.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=k.index+e;return t>=0&&t<k.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return k}},2535:(e,t,n)=>{"use strict";var r=n(6237),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},3670:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},901:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},7687:(e,t,n)=>{"use strict";n.r(t)},2630:(e,t,n)=>{"use strict";n.r(t)},9981:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},2767:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var a,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var c in a=Object(arguments[s]))n.call(a,c)&&(l[c]=a[c]);if(t){i=t(a);for(var u=0;u<i.length;u++)r.call(a,i[u])&&(l[i[u]]=a[i[u]])}}return l}},7720:(e,t,n)=>{var r=n(901);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],k=n[7];l&&(r.push(l),l="");var w=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||u,_=b||v;r.push({name:g||a++,prefix:h||"",delimiter:x,optional:S,repeat:E,partial:w,asterisk:!!k,pattern:_?c(_):k?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",l=t||{},s=(o||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=l[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",l=0;l<e.length;l++){var c=e[l];if("string"==typeof c)i+=s(c);else{var p=s(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var l in a)if(a.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=a[l])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],o||l);var s=t[l],c=r.util.type(s);"Object"!==c||a[i(s)]?"Array"!==c||a[i(s)]||(a[i(s)]=!0,e(s,n,l,a)):(a[i(s)]=!0,e(s,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new l;return s(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,l,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var k=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,k+"g")}for(var w=h.pattern||h,E=l.next,S=u;E!==t.tail&&!(d&&S>=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof o)){var _,C=1;if(v){if(!(_=a(w,S,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=S;for(L+=E.value.length;T>=L;)L+=(E=E.next).value.length;if(S=L-=E.value.length,E.value instanceof o)continue;for(var j=E;j!==t.tail&&(L<A||"string"==typeof j.value);j=j.next)C++,L+=j.value.length;C--,x=e.slice(S,L),_.index-=S}else if(!(_=a(w,0,x,b)))continue;T=_.index;var N=_[0],R=x.slice(0,T),O=x.slice(T+N.length),P=S+x.length;d&&P>d.reach&&(d.reach=P);var I=E.prev;if(R&&(I=s(t,I,R),S+=R.length),c(t,I,C),E=s(t,I,new o(p,g?r.tokenize(N,g):N,y,N)),O&&s(t,E,O),C>1){var D={cause:p+","+m,reach:P};i(e,t,n,E.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var l="";for(var s in a.attributes)l+=" "+s+'="'+(a.attributes[s]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+l+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var l=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],c=/language-(.+)/.exec(a);if(c){n=c[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),o.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var c=t[s];"variable"===c.type&&o.indexOf(c.content)>=0&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))o++;else if(r.test(l)&&0===--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function c(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,s(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var s=a.substring(0,l),d=c(u[o]),f=a.substring(l+o.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),c=l.alias,d=Array.isArray(c)?c[0]:c,f=e.languages[d];if(!f)continue;i[1]=u(s,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&l(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(o>=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},1064:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},1884:(e,t,n)=>{const r=n(1064),o=n(6474),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(2928).resolve(t)],delete Prism.languages[e],n(2928)(t),a.add(e)}))}i.silent=!1,e.exports=i},2928:(e,t,n)=>{var r={"./":1884};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=2928},6474:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var l={},s=e[r];if(s){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(s),m=u;o(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var k={getIds:function(){var e=[];return k.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var u in n)c(u);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,u,t,n)}};return k}}();e.exports=t},4049:(e,t,n)=>{"use strict";var r=n(6257);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},507:(e,t,n)=>{e.exports=n(4049)()},6257:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},7439:(e,t,n)=>{"use strict";var r=n(9496),o=n(2767),a=n(8051);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function c(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function k(e,t,n,r){var o=b.hasOwnProperty(t)?b[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=60103,S=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,j=60113,N=60120,R=60115,O=60116,P=60121,I=60128,D=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;E=B("react.element"),S=B("react.portal"),x=B("react.fragment"),_=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),A=B("react.context"),L=B("react.forward_ref"),j=B("react.suspense"),N=B("react.suspense_list"),R=B("react.memo"),O=B("react.lazy"),P=B("react.block"),B("react.scope"),I=B("react.opaque.id"),D=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var H=!1;function G(e,t){if(!e||H)return"";H=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var o=s.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{H=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 22:return e=G(e.type._render,!1);case 1:return e=G(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case _:return"StrictMode";case j:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case R:return V(e.type);case P:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&k(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ce(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function we(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Ee=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Se(e,t){if(t){if(Ee[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=no(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=oo(t),Ce(e.stateNode,e.type,t))}}function je(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Ne(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Re(e,t){return e(t)}function Oe(e,t,n,r,o){return e(t,n,r,o)}function Pe(){}var Ie=Re,De=!1,Me=!1;function Fe(){null===Te&&null===Ae||(Pe(),Ne())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=oo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,o,a,i,l,s){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var qe=!1,He=null,Ge=!1,Ze=null,Ve={onError:function(e){qe=!0,He=e}};function We(e,t,n,r,o,a,i,l,s){qe=!1,He=null,$e.apply(Ve,arguments)}function Ye(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ye(e)!==e)throw Error(i(188))}function Qe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ye(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l){for(s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,at=[],it=null,lt=null,st=null,ct=new Map,ut=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ct.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function ht(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=ft(t,n,r,o,a),null!==t&&(null!==(t=no(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function gt(e){var t=to(e.target);if(null!==t){var n=Ye(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(ot=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ct.forEach(vt),ut.forEach(vt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yt)))}function wt(e){function t(t){return kt(t,e)}if(0<at.length){kt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&kt(it,e),null!==lt&&kt(lt,e),null!==st&&kt(st,e),ct.forEach(t),ut.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function Et(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var St={animationend:Et("Animation","AnimationEnd"),animationiteration:Et("Animation","AnimationIteration"),animationstart:Et("Animation","AnimationStart"),transitionend:Et("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!St[e])return e;var t,n=St[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete St.animationend.animation,delete St.animationiteration.animation,delete St.animationstart.animation),"TransitionEvent"in window||delete St.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),jt=Ct("transitionend"),Nt=new Map,Rt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",jt,"transitionEnd","waiting","waiting"];function Pt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Rt.set(r,t),Nt.set(r,o),c(o,[r])}}(0,a.unstable_now)();var It=8;function Dt(e){if(0!=(1&e))return It=15,1;if(0!=(2&e))return It=14,2;if(0!=(4&e))return It=13,4;var t=24&e;return 0!==t?(It=12,t):0!=(32&e)?(It=11,32):0!==(t=192&e)?(It=10,t):0!=(256&e)?(It=9,256):0!==(t=3584&e)?(It=8,t):0!=(4096&e)?(It=7,4096):0!==(t=4186112&e)?(It=6,t):0!==(t=62914560&e)?(It=5,t):67108864&e?(It=4,67108864):0!=(134217728&e)?(It=3,134217728):0!==(t=805306368&e)?(It=2,t):0!=(1073741824&e)?(It=1,1073741824):(It=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return It=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==a)r=a,o=It=15;else if(0!==(a=134217727&n)){var s=a&~i;0!==s?(r=Dt(s),o=It):0!==(l&=a)&&(r=Dt(l),o=It)}else 0!==(a=n&~i)?(r=Dt(a),o=It):0!==l&&(r=Dt(l),o=It);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Dt(t),o<=It)return t;It=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-qt(t)),r|=e[n],t&=~o;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Bt(10,t):e;case 10:return 0===(e=zt(192&~t))?Bt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Ht(e)/Gt|0)|0},Ht=Math.log,Gt=Math.LN2;var Zt=a.unstable_UserBlockingPriority,Vt=a.unstable_runWithPriority,Wt=!0;function Yt(e,t,n,r){De||Pe();var o=Xt,a=De;De=!0;try{Oe(o,e,t,n,r)}finally{(De=a)||Fe()}}function Kt(e,t,n,r){Vt(Zt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Wt)if((o=0==(4&t))&&0<at.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),at.push(e);else{var a=Qt(e,t,n,r);if(null===a)o&&mt(e,r);else{if(o){if(-1<pt.indexOf(e))return e=ft(a,e,t,n,r),void at.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return it=ht(it,e,t,n,r,o),!0;case"dragenter":return lt=ht(lt,e,t,n,r,o),!0;case"mouseover":return st=ht(st,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return ct.set(a,ht(ct.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,ut.set(a,ht(ut.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;mt(e,r)}Pr(e,t,r,null,n)}}}function Qt(e,t,n,r){var o=_e(r);if(null!==(o=to(o))){var a=Ye(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Ke(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Pr(e,t,r,o,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Jt?Jt.value:Jt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function ln(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var sn,cn,un,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=ln(dn),fn=o({},dn,{view:0,detail:0}),mn=ln(fn),hn=o({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==un&&(un&&"mousemove"===e.type?(sn=e.screenX-un.screenX,cn=e.screenY-un.screenY):cn=sn=0,un=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),gn=ln(hn),bn=ln(o({},hn,{dataTransfer:0})),vn=ln(o({},fn,{relatedTarget:0})),yn=ln(o({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=o({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),wn=ln(kn),En=ln(o({},dn,{data:0})),Sn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=o({},fn,{key:function(e){if(e.key){var t=Sn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),jn=ln(o({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=ln(o({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Rn=ln(o({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=o({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Pn=ln(On),In=[9,13,27,32],Dn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Mn,Bn=d&&(!Dn||Mn&&8<Mn&&11>=Mn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==In.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Hn=!1;var Gn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Gn[e.type]:"textarea"===t}function Vn(e,t,n,r){je(r),0<(t=Dr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,Yn=null;function Kn(e){Ar(e,0)}function Xn(e){if(X(ro(e)))return e}function Qn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Wn&&(Wn.detachEvent("onpropertychange",or),Yn=Wn=null)}function or(e){if("value"===e.propertyName&&Xn(Yn)){var t=[];if(Vn(t,Yn,e,_e(e)),e=Kn,De)e(t);else{De=!0;try{Re(e,t)}finally{De=!1,Fe()}}}}function ar(e,t,n){"focusin"===e?(rr(),Yn=n,(Wn=t).attachEvent("onpropertychange",or)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Yn)}function lr(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var cr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},ur=Object.prototype.hasOwnProperty;function dr(e,t){if(cr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ur.call(t,n[r])||!cr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,kr=null,wr=!1;function Er(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;wr||null==vr||vr!==Q(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&dr(kr,r)||(kr=r,0<(r=Dr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}Pt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Pt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Pt(Ot,2);for(var Sr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Sr.length;xr++)Rt.set(Sr[xr],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,l,s,c){if(We.apply(this,arguments),qe){if(!qe)throw Error(i(198));var u=He;qe=!1,He=null,Ge||(Ge=!0,Ze=u)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;Tr(o,l,c),a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;Tr(o,l,c),a=s}}}if(Ge)throw e=Ze,Ge=!1,Ze=null,e}function Lr(e,t){var n=ao(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var jr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[jr]||(e[jr]=!0,l.forEach((function(t){Cr.has(t)||Rr(t,!1,e,null),Rr(t,!0,e,null)})))}function Rr(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=ao(a),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(o|=4),Or(a,e,o,t),i.add(l))}function Or(e,t,n,r){var o=Rt.get(t);switch(void 0===o?2:o){case 0:o=Yt;break;case 1:o=Kt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Pr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===o||8===s.nodeType&&s.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=to(l)))return;if(5===(s=i.tag)||6===s){r=a=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Ie(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=a,o=_e(n),i=[];e:{var l=Nt.get(e);if(void 0!==l){var s=pn,c=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":c="focus",s=vn;break;case"focusout":c="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Nn;break;case Tt:case At:case Lt:s=yn;break;case jt:s=Rn;break;case"scroll":s=mn;break;case"wheel":s=Pn;break;case"copy":case"cut":case"paste":s=wn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=jn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==l?l+"Capture":null:l;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Be(m,p))&&u.push(Ir(m,h,f)))),d)break;m=m.return}0<u.length&&(l=new s(l,c,null,n,o),i.push({event:l,listeners:u}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(c=n.relatedTarget||n.fromElement)||!to(c)&&!c[Jr])&&(s||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(c=(c=n.relatedTarget||n.toElement)?to(c):null)&&(c!==(d=Ye(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(s=null,c=r),s!==c)){if(u=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=jn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:ro(s),f=null==c?l:ro(c),(l=new u(h,m+"leave",s,n,o)).target=d,l.relatedTarget=f,h=null,to(o)===r&&((u=new u(p,m+"enter",c,n,o)).target=f,u.relatedTarget=d,h=u),d=h,s&&c)e:{for(p=c,m=0,f=u=s;f;f=Mr(f))m++;for(f=0,h=p;h;h=Mr(h))f++;for(;0<m-f;)u=Mr(u),m--;for(;0<f-m;)p=Mr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Mr(u),p=Mr(p)}u=null}else u=null;null!==s&&Fr(i,l,s,u,!1),null!==c&&null!==d&&Fr(i,d,c,u,!0)}if("select"===(s=(l=r?ro(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Qn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=ar}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,o):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&oe(l,"number",l.value)),b=r?ro(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,kr=null);break;case"focusout":kr=yr=vr=null;break;case"mousedown":wr=!0;break;case"contextmenu":case"mouseup":case"dragend":wr=!1,Er(i,n,o);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Er(i,n,o)}var v;if(Dn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Hn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Hn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Hn&&(v=nn()):(en="value"in(Jt=o)?Jt.value:Jt.textContent,Hn=!0)),0<(b=Dr(r,y)).length&&(y=new En(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Fn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Hn)return"compositionend"===e||!Dn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Hn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Dr(r,"onBeforeInput")).length&&(o=new En("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}Ar(i,t)}))}function Ir(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Be(e,n))&&r.unshift(Ir(e,a,o)),null!=(a=Be(e,t))&&r.push(Ir(e,a,o))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==c&&(l=c,o?null!=(s=Be(n,a))&&i.unshift(Ir(n,s,l)):o||null!=(s=Be(n,a))&&i.push(Ir(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Hr="function"==typeof setTimeout?setTimeout:void 0,Gr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Wr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Yr=0;var Kr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Kr,Qr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,eo="__reactEvents$"+Kr;function to(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Wr(e);null!==e;){if(n=e[Xr])return n;e=Wr(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Xr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ro(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oo(e){return e[Qr]||null}function ao(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var io=[],lo=-1;function so(e){return{current:e}}function co(e){0>lo||(e.current=io[lo],io[lo]=null,lo--)}function uo(e,t){lo++,io[lo]=e.current,e.current=t}var po={},fo=so(po),mo=so(!1),ho=po;function go(e,t){var n=e.type.contextTypes;if(!n)return po;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function bo(e){return null!=(e=e.childContextTypes)}function vo(){co(mo),co(fo)}function yo(e,t,n){if(fo.current!==po)throw Error(i(168));uo(fo,t),uo(mo,n)}function ko(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,V(t)||"Unknown",a));return o({},n,r)}function wo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||po,ho=fo.current,uo(fo,e),uo(mo,mo.current),!0}function Eo(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ko(e,t,ho),r.__reactInternalMemoizedMergedChildContext=e,co(mo),co(fo),uo(fo,e)):co(mo),uo(mo,n)}var So=null,xo=null,_o=a.unstable_runWithPriority,Co=a.unstable_scheduleCallback,To=a.unstable_cancelCallback,Ao=a.unstable_shouldYield,Lo=a.unstable_requestPaint,jo=a.unstable_now,No=a.unstable_getCurrentPriorityLevel,Ro=a.unstable_ImmediatePriority,Oo=a.unstable_UserBlockingPriority,Po=a.unstable_NormalPriority,Io=a.unstable_LowPriority,Do=a.unstable_IdlePriority,Mo={},Fo=void 0!==Lo?Lo:function(){},Bo=null,zo=null,Uo=!1,$o=jo(),qo=1e4>$o?jo:function(){return jo()-$o};function Ho(){switch(No()){case Ro:return 99;case Oo:return 98;case Po:return 97;case Io:return 96;case Do:return 95;default:throw Error(i(332))}}function Go(e){switch(e){case 99:return Ro;case 98:return Oo;case 97:return Po;case 96:return Io;case 95:return Do;default:throw Error(i(332))}}function Zo(e,t){return e=Go(e),_o(e,t)}function Vo(e,t,n){return e=Go(e),Co(e,t,n)}function Wo(){if(null!==zo){var e=zo;zo=null,To(e)}Yo()}function Yo(){if(!Uo&&null!==Bo){Uo=!0;var e=0;try{var t=Bo;Zo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Bo=null}catch(n){throw null!==Bo&&(Bo=Bo.slice(e+1)),Co(Ro,Wo),n}finally{Uo=!1}}}var Ko=w.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Qo=so(null),Jo=null,ea=null,ta=null;function na(){ta=ea=Jo=null}function ra(e){var t=Qo.current;co(Qo),e.type._context._currentValue=t}function oa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function aa(e,t){Jo=e,ta=ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Di=!0),e.firstContext=null)}function ia(e,t){if(ta!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ta=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ea){if(null===Jo)throw Error(i(308));ea=t,Jo.dependencies={lanes:0,firstContext:t,responders:null}}else ea=ea.next=t;return e._currentValue}var la=!1;function sa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ca(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ua(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function da(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function pa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fa(e,t,n,r){var a=e.updateQueue;la=!1;var i=a.firstBaseUpdate,l=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var c=s,u=c.next;c.next=null,null===l?i=u:l.next=u,l=c;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=c)}}if(null!==i){for(p=a.baseState,l=0,d=u=c=null;;){s=i.lane;var f=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,s);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(f,p,s):m))break e;p=o({},p,s);break e;case 2:la=!0}}null!==i.callback&&(e.flags|=32,null===(s=a.effects)?a.effects=[i]:s.push(i))}else f={eventTime:f,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,c=p):d=d.next=f,l|=s;if(null===(i=i.next)){if(null===(s=a.shared.pending))break;i=s.next,s.next=null,a.lastBaseUpdate=s,a.shared.pending=null}}null===d&&(c=p),a.baseState=c,a.firstBaseUpdate=u,a.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=p}}function ma(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ha=(new r.Component).refs;function ga(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ba={isMounted:function(e){return!!(e=e._reactInternals)&&Ye(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ps(),o=fs(e),a=ua(r,o);a.payload=t,null!=n&&(a.callback=n),da(e,a),ms(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ps(),o=fs(e),a=ua(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),da(e,a),ms(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ps(),r=fs(e),o=ua(n,r);o.tag=2,null!=t&&(o.callback=t),da(e,o),ms(e,r,n)}};function va(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(o,a))}function ya(e,t,n){var r=!1,o=po,a=t.contextType;return"object"==typeof a&&null!==a?a=ia(a):(o=bo(t)?ho:fo.current,a=(r=null!=(r=t.contextTypes))?go(e,o):po),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=ba,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ka(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ba.enqueueReplaceState(t,t.state,null)}function wa(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ha,sa(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=ia(a):(a=bo(t)?ho:fo.current,o.context=go(e,a)),fa(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ga(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&ba.enqueueReplaceState(o,o.state,null),fa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var Ea=Array.isArray;function Sa(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ha&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xa(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _a(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=Sa(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Sa(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xs(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Ws(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case E:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Sa(e,null,t),n.return=e,n;case S:return(t=Xs(t,e.mode,n)).return=e,t}if(Ea(t)||$(t))return(t=Ws(t,e.mode,n,null)).return=e,t;xa(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case E:return n.key===o?n.type===x?d(e,t,n.props.children,r,o):c(e,t,n,r):null;case S:return n.key===o?u(e,t,n,r):null}if(Ea(n)||$(n))return null!==o?null:d(e,t,n,r,null);xa(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case E:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,o,r.key):c(t,e,r,o);case S:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(Ea(r)||$(r))return d(t,e=e.get(n)||null,r,o,null);xa(t,r)}return null}function h(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===l.length)return n(o,d),c;if(null===d){for(;h<l.length;h++)null!==(d=p(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return c}for(d=r(o,d);h<l.length;h++)null!==(g=m(d,o,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),c}function g(o,l,s,c){var u=$(s);if("function"!=typeof u)throw Error(i(150));if(null==(s=u.call(s)))throw Error(i(151));for(var d=u=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),l=a(y,l,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),u;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(o,v.value,c))&&(l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(o,h);!v.done;g++,v=s.next())null!==(v=m(h,o,g,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),u}return function(e,r,a,s){var c="object"==typeof a&&null!==a&&a.type===x&&null===a.key;c&&(a=a.props.children);var u="object"==typeof a&&null!==a;if(u)switch(a.$$typeof){case E:e:{for(u=a.key,c=r;null!==c;){if(c.key===u){if(7===c.tag){if(a.type===x){n(e,c.sibling),(r=o(c,a.props.children)).return=e,e=r;break e}}else if(c.elementType===a.type){n(e,c.sibling),(r=o(c,a.props)).ref=Sa(e,c,a),r.return=e,e=r;break e}n(e,c);break}t(e,c),c=c.sibling}a.type===x?((r=Ws(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=Vs(a.type,a.key,a.props,null,e.mode,s)).ref=Sa(e,r,a),s.return=e,e=s)}return l(e);case S:e:{for(c=a.key;null!==r;){if(r.key===c){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xs(a,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Ks(a,e.mode,s)).return=e,e=r),l(e);if(Ea(a))return h(e,r,a,s);if($(a))return g(e,r,a,s);if(u&&xa(e,a),void 0===a&&!c)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Ca=_a(!0),Ta=_a(!1),Aa={},La=so(Aa),ja=so(Aa),Na=so(Aa);function Ra(e){if(e===Aa)throw Error(i(174));return e}function Oa(e,t){switch(uo(Na,t),uo(ja,e),uo(La,Aa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}co(La),uo(La,t)}function Pa(){co(La),co(ja),co(Na)}function Ia(e){Ra(Na.current);var t=Ra(La.current),n=fe(t,e.type);t!==n&&(uo(ja,e),uo(La,n))}function Da(e){ja.current===e&&(co(La),co(ja))}var Ma=so(0);function Fa(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ba=null,za=null,Ua=!1;function $a(e,t){var n=Hs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qa(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Ha(e){if(Ua){var t=za;if(t){var n=t;if(!qa(e,t)){if(!(t=Vr(n.nextSibling))||!qa(e,t))return e.flags=-1025&e.flags|2,Ua=!1,void(Ba=e);$a(Ba,n)}Ba=e,za=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Ua=!1,Ba=e}}function Ga(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Ba=e}function Za(e){if(e!==Ba)return!1;if(!Ua)return Ga(e),Ua=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=za;t;)$a(e,t),t=Vr(t.nextSibling);if(Ga(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){za=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}za=null}}else za=Ba?Vr(e.stateNode.nextSibling):null;return!0}function Va(){za=Ba=null,Ua=!1}var Wa=[];function Ya(){for(var e=0;e<Wa.length;e++)Wa[e]._workInProgressVersionPrimary=null;Wa.length=0}var Ka=w.ReactCurrentDispatcher,Xa=w.ReactCurrentBatchConfig,Qa=0,Ja=null,ei=null,ti=null,ni=!1,ri=!1;function oi(){throw Error(i(321))}function ai(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!cr(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,o,a){if(Qa=a,Ja=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ka.current=null===e||null===e.memoizedState?Ri:Oi,e=n(r,o),ri){a=0;do{if(ri=!1,!(25>a))throw Error(i(301));a+=1,ti=ei=null,t.updateQueue=null,Ka.current=Pi,e=n(r,o)}while(ri)}if(Ka.current=Ni,t=null!==ei&&null!==ei.next,Qa=0,ti=ei=Ja=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Ja.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Ja.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Ja.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Ja.memoizedState=ti=e:ti=ti.next=e}return ti}function ci(e,t){return"function"==typeof t?t(e):t}function ui(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var l=o.next;o.next=a.next,a.next=l}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var s=l=a=null,c=o;do{var u=c.lane;if((Qa&u)===u)null!==s&&(s=s.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var d={lane:u,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===s?(l=s=d,a=r):s=s.next=d,Ja.lanes|=u,Ul|=u}c=c.next}while(null!==c&&c!==o);null===s?a=r:s.next=l,cr(r,t.memoizedState)||(Di=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{a=e(a,l.action),l=l.next}while(l!==o);cr(a,t.memoizedState)||(Di=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Qa&e)===e)&&(t._workInProgressVersionPrimary=r,Wa.push(t))),e)return n(t._source);throw Wa.push(t),Error(i(350))}function fi(e,t,n,r){var o=Ol;if(null===o)throw Error(i(349));var a=t._getVersion,l=a(t._source),s=Ka.current,c=s.useState((function(){return pi(o,t,n)})),u=c[1],d=c[0];c=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Ja;return e.memoizedState={refs:f,source:t,subscribe:r},s.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=a(t._source);if(!cr(l,e)){e=n(t._source),cr(d,e)||(u(e),e=fs(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var s=31-qt(i),c=1<<s;r[s]|=e,i&=~c}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fs(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),cr(m,n)&&cr(h,t)&&cr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:d}).dispatch=u=ji.bind(null,Ja,e),c.queue=e,c.baseQueue=null,d=pi(o,t,n),c.memoizedState=c.baseState=d),d}function mi(e,t,n){return fi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:e}).dispatch=ji.bind(null,Ja,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Ja.updateQueue)?(t={lastEffect:null},Ja.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var o=li();Ja.flags|=e,o.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var o=si();r=void 0===r?null:r;var a=void 0;if(null!==ei){var i=ei.memoizedState;if(a=i.destroy,null!==r&&ai(r,i.deps))return void gi(t,n,a,r)}Ja.flags|=e,o.memoizedState=gi(1|t,n,a,r)}function wi(e,t){return yi(516,4,e,t)}function Ei(e,t){return ki(516,4,e,t)}function Si(e,t){return ki(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=Ho();Zo(98>n?98:n,(function(){e(!0)})),Zo(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function ji(e,t,n){var r=ps(),o=fs(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===Ja||null!==i&&i===Ja)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(a.eagerReducer=i,a.eagerState=s,cr(s,l))return}catch(c){}ms(e,o,r)}}var Ni={readContext:ia,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Ri={readContext:ia,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:ia,useEffect:wi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=ji.bind(null,Ja,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return wi((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(Ua){var e=!1,t=function(e){return{$$typeof:I,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Yr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Ja.mode)&&(Ja.flags|=516,gi(5,(function(){n("r:"+(Yr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Yr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:ia,useCallback:Ti,useContext:ia,useEffect:Ei,useImperativeHandle:_i,useLayoutEffect:Si,useMemo:Ai,useReducer:ui,useRef:vi,useState:function(){return ui(ci)},useDebugValue:Ci,useDeferredValue:function(e){var t=ui(ci),n=t[0],r=t[1];return Ei((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=ui(ci)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ui(ci)[0]},unstable_isNewReconciler:!1},Pi={readContext:ia,useCallback:Ti,useContext:ia,useEffect:Ei,useImperativeHandle:_i,useLayoutEffect:Si,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ci)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ci),n=t[0],r=t[1];return Ei((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(ci)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ci)[0]},unstable_isNewReconciler:!1},Ii=w.ReactCurrentOwner,Di=!1;function Mi(e,t,n,r){t.child=null===e?Ta(t,null,n,r):Ca(t,e.child,n,r)}function Fi(e,t,n,r,o){n=n.render;var a=t.ref;return aa(t,o),r=ii(e,t,n,r,a,o),null===e||Di?(t.flags|=1,Mi(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Bi(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||Gs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(o,r)&&e.ref===t.ref)?al(e,t,a):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,o,a){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Di=!1,0==(a&o))return t.lanes=e.lanes,al(e,t,a);0!=(16384&e.flags)&&(Di=!0)}return qi(e,t,n,r,a)}function Ui(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Es(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Es(t,e),null;t.memoizedState={baseLanes:0},Es(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Es(t,r);return Mi(e,t,o,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,o){var a=bo(n)?ho:fo.current;return a=go(t,a),aa(t,o),n=ii(e,t,n,r,a,o),null===e||Di?(t.flags|=1,Mi(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Hi(e,t,n,r,o){if(bo(n)){var a=!0;wo(t)}else a=!1;if(aa(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),ya(t,n,r),wa(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=ia(c):c=go(t,c=bo(n)?ho:fo.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==c)&&ka(t,i,r,c),la=!1;var p=t.memoizedState;i.state=p,fa(t,r,i,o),s=t.memoizedState,l!==r||p!==s||mo.current||la?("function"==typeof u&&(ga(t,n,u,r),s=t.memoizedState),(l=la||va(t,n,l,r,p,s,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=c,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,ca(e,t),l=t.memoizedProps,c=t.type===t.elementType?l:Xo(t.type,l),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=ia(s):s=go(t,s=bo(n)?ho:fo.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ka(t,i,r,s),la=!1,p=t.memoizedState,i.state=p,fa(t,r,i,o);var m=t.memoizedState;l!==d||p!==m||mo.current||la?("function"==typeof f&&(ga(t,n,f,r),m=t.memoizedState),(c=la||va(t,n,c,r,p,m,s))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=c):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Gi(e,t,n,r,a,o)}function Gi(e,t,n,r,o,a){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&Eo(t,n,!1),al(e,t,a);r=t.stateNode,Ii.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ca(t,e.child,null,a),t.child=Ca(t,null,l,a)):Mi(e,t,l,a),t.memoizedState=r.state,o&&Eo(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?yo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&yo(0,t.context,!1),Oa(e,t.containerInfo)}var Vi,Wi,Yi,Ki,Xi={dehydrated:null,retryLane:0};function Qi(e,t,n){var r,o=t.pendingProps,a=Ma.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),uo(Ma,1&a),null===e?(void 0!==o.fallback&&Ha(t),e=o.children,a=o.fallback,i?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Ys({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=tl(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,o):(n=el(e,t,o.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Ys(t,o,0,null),n=Ws(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function el(e,t,n,r){var o=e.child;return e=o.sibling,n=Zs(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Ws(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),oa(e.return,t)}function rl(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function ol(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Ma.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(uo(Ma,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Fa(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rl(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Fa(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rl(t,!0,n,null,a,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function al(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Ua)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return bo(t.type)&&vo(),null;case 3:return Pa(),co(mo),co(fo),Ya(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Za(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Wi(t),null;case 5:Da(t);var a=Ra(Na.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Ra(La.current),Za(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Qr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var c in Se(n,l),e=null,l)l.hasOwnProperty(c)&&(a=l[c],"children"===c?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):s.hasOwnProperty(c)&&null!=a&&"onScroll"===c&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ue(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(c=9===a.nodeType?a:a.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=c.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(n,{is:r.is}):(e=c.createElement(n),"select"===n&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,n),e[Xr]=t,e[Qr]=r,Vi(e,t,!1,!1),t.stateNode=e,c=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),a=r;break;case"iframe":case"object":case"embed":Lr("load",e),a=r;break;case"video":case"audio":for(a=0;a<_r.length;a++)Lr(_r[a],e);a=r;break;case"source":Lr("error",e),a=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),a=r;break;case"details":Lr("toggle",e),a=r;break;case"input":ee(e,r),a=J(e,r),Lr("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),a=le(e,r),Lr("invalid",e);break;default:a=r}Se(n,a);var u=a;for(l in u)if(u.hasOwnProperty(l)){var d=u[l];"style"===l?we(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&k(e,l,d,c))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Br)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Ra(Na.current),Ra(La.current),Za(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return co(Ma),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Za(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Ma.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Il))),(r||n)&&(t.flags|=4),null);case 4:return Pa(),Wi(t),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return ra(t),null;case 19:if(co(Ma),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(c=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(c=Fa(e))){for(t.flags|=64,il(r,!1),null!==(l=c.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(c=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=c.childLanes,l.lanes=c.lanes,l.child=c.child,l.memoizedProps=c.memoizedProps,l.memoizedState=c.memoizedState,l.updateQueue=c.updateQueue,l.type=c.type,e=c.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return uo(Ma,1&Ma.current|2),t.child}e=e.sibling}null!==r.tail&&qo()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Fa(c))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!c.alternate&&!Ua)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*qo()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(c.sibling=t.child,t.child=c):(null!==(n=r.last)?n.sibling=c:t.child=c,r.last=c)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=qo(),n.sibling=null,t=Ma.current,uo(Ma,l?1&t|2:1&t),n):null;case 23:case 24:return Ss(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:bo(e.type)&&vo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Pa(),co(mo),co(fo),Ya(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Da(e),null;case 13:return co(Ma),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return co(Ma),null;case 4:return Pa(),null;case 10:return ra(e),null;case 23:case 24:return Ss(),null;default:return null}}function cl(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function ul(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Wi=function(){},Yi=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ra(La.current);var i,l=null;switch(n){case"input":a=J(e,a),r=J(e,r),l=[];break;case"option":a=ae(e,a),r=ae(e,r),l=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),l=[];break;case"textarea":a=le(e,a),r=le(e,r),l=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in Se(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var c=a[d];for(i in c)c.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var u=r[d];if(c=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&u!==c&&(null!=u||null!=c))if("style"===d)if(c){for(i in c)!c.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&c[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(l||(l=[]),l.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,c=c?c.__html:void 0,null!=u&&c!==u&&(l=l||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(l=l||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Lr("scroll",e),l||c===u||(l=[])):"object"==typeof u&&null!==u&&u.$$typeof===I?u.toString():(l=l||[]).push(d,u))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=ua(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Xl=r),ul(0,t)},n}function fl(e,t,n){(n=ua(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return ul(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Ql?Ql=new Set([this]):Ql.add(this),ul(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Ms(n,e),Ds(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ma(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ma(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&wt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=ke("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(xo&&"function"==typeof xo.onCommitFiberUnmount)try{xo.onCommitFiberUnmount(So,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Ms(t,n);else{r=t;try{o()}catch(a){zs(r,a)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){zs(t,a)}break;case 5:hl(t);break;case 4:_l(e,t)}}function kl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function wl(e){return 5===e.tag||3===e.tag||4===e.tag}function El(e){e:{for(var t=e.return;null!==t;){if(wl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||wl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Sl(e,n,t):xl(e,n,t)}function Sl(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(Sl(e,t,n),e=e.sibling;null!==e;)Sl(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var l=e,s=o,c=s;;)if(yl(l,c),null!==c.child&&4!==c.tag)c.child.return=c,c=c.child;else{if(c===s)break e;for(;null===c.sibling;){if(null===c.return||c.return===s)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}r?(l=n,s=o.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(yl(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Qr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,o),t=xe(e,r),o=0;o<a.length;o+=2){var l=a[o],s=a[o+1];"style"===l?we(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):k(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ce(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,wt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Gl=qo(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,jl=w.ReactCurrentDispatcher,Nl=w.ReactCurrentOwner,Rl=0,Ol=null,Pl=null,Il=0,Dl=0,Ml=so(0),Fl=0,Bl=null,zl=0,Ul=0,$l=0,ql=0,Hl=null,Gl=0,Zl=1/0;function Vl(){Zl=qo()+500}var Wl,Yl=null,Kl=!1,Xl=null,Ql=null,Jl=!1,es=null,ts=90,ns=[],rs=[],os=null,as=0,is=null,ls=-1,ss=0,cs=0,us=null,ds=!1;function ps(){return 0!=(48&Rl)?qo():-1!==ls?ls:ls=qo()}function fs(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Ho()?1:2;if(0===ss&&(ss=zl),0!==Ko.transition){0!==cs&&(cs=null!==Hl?Hl.pendingLanes:0),e=ss;var t=4186112&~cs;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Ho(),0!=(4&Rl)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<as)throw as=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Fl&&vs(e,Il));var r=Ho();1===t?0!=(8&Rl)&&0==(48&Rl)?ys(e):(gs(e,n),0===Rl&&(Vl(),Wo())):(0==(4&Rl)||98!==r&&99!==r||(null===os?os=new Set([e]):os.add(e)),gs(e,n)),Hl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),c=1<<s,u=a[s];if(-1===u){if(0==(c&r)||0!=(c&o)){u=t,Dt(c);var d=It;a[s]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=c);l&=~c}if(r=Mt(e,e===Ol?Il:0),t=It,0===r)null!==n&&(n!==Mo&&To(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Mo&&To(n)}15===t?(n=ys.bind(null,e),null===Bo?(Bo=[n],zo=Co(Ro,Yo)):Bo.push(n),n=Mo):14===t?n=Vo(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Vo(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,cs=ss=0,0!=(48&Rl))throw Error(i(327));var t=e.callbackNode;if(Is()&&e.callbackNode!==t)return null;var n=Mt(e,e===Ol?Il:0);if(0===n)return null;var r=n,o=Rl;Rl|=16;var a=Cs();for(Ol===e&&Il===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(na(),jl.current=a,Rl=o,null!==Pl?r=0:(Ol=null,Il=0,r=Fl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Rl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Ft(e))&&(r=Ts(e,n))),1===r)throw t=Bl,xs(e,0),vs(e,n),gs(e,qo()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Rs(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Gl+500-qo())){if(0!==Mt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){ps(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=Hr(Rs.bind(null,e),r);break}Rs(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var l=31-qt(n);a=1<<l,(l=r[l])>o&&(o=l),n&=~a}if(n=o,10<(n=(120>(n=qo()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Hr(Rs.bind(null,e),n);break}Rs(e);break;default:throw Error(i(329))}}return gs(e,qo()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Rl))throw Error(i(327));if(Is(),e===Ol&&0!=(e.expiredLanes&Il)){var t=Il,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Mt(e,t)))}else n=Ts(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Rl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Ft(e))&&(n=Ts(e,t))),1===n)throw n=Bl,xs(e,0),vs(e,t),gs(e,qo()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Rs(e),gs(e,qo()),null}function ks(e,t){var n=Rl;Rl|=1;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wo())}}function ws(e,t){var n=Rl;Rl&=-2,Rl|=8;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wo())}}function Es(e,t){uo(Ml,Dl),Dl|=t,zl|=t}function Ss(){Dl=Ml.current,co(Ml)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Gr(n)),null!==Pl)for(n=Pl.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&vo();break;case 3:Pa(),co(mo),co(fo),Ya();break;case 5:Da(r);break;case 4:Pa();break;case 13:case 19:co(Ma);break;case 10:ra(r);break;case 23:case 24:Ss()}n=n.return}Ol=e,Pl=Zs(e.current,null),Il=Dl=zl=t,Fl=0,Bl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Pl;try{if(na(),Ka.current=Ni,ni){for(var r=Ja.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ni=!1}if(Qa=0,ti=ei=Ja=null,ri=!1,Nl.current=null,null===n||null===n.return){Fl=1,Bl=t,Pl=null;break}e:{var a=e,i=n.return,l=n,s=t;if(t=Il,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var c=s;if(0==(2&l.mode)){var u=l.alternate;u?(l.updateQueue=u.updateQueue,l.memoizedState=u.memoizedState,l.lanes=u.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Ma.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(c),p.updateQueue=b}else g.add(c);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=ua(-1,1);v.tag=2,da(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new dl,s=new Set,y.set(c,s)):void 0===(s=y.get(c))&&(s=new Set,y.set(c,s)),!s.has(l)){s.add(l);var k=Us.bind(null,a,c,l);c.then(k,k)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),s=cl(s,l),p=i;do{switch(p.tag){case 3:a=s,p.flags|=4096,t&=-t,p.lanes|=t,pa(p,pl(0,a,t));break e;case 1:a=s;var w=p.type,E=p.stateNode;if(0==(64&p.flags)&&("function"==typeof w.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Ql||!Ql.has(E)))){p.flags|=4096,t&=-t,p.lanes|=t,pa(p,fl(p,a,t));break e}}p=p.return}while(null!==p)}Ns(n)}catch(S){t=S,Pl===n&&null!==n&&(Pl=n=n.return);continue}break}}function Cs(){var e=jl.current;return jl.current=Ni,null===e?Ni:e}function Ts(e,t){var n=Rl;Rl|=16;var r=Cs();for(Ol===e&&Il===t||xs(e,t);;)try{As();break}catch(o){_s(e,o)}if(na(),Rl=n,jl.current=r,null!==Pl)throw Error(i(261));return Ol=null,Il=0,Fl}function As(){for(;null!==Pl;)js(Pl)}function Ls(){for(;null!==Pl&&!Ao();)js(Pl)}function js(e){var t=Wl(e.alternate,e,Dl);e.memoizedProps=e.pendingProps,null===t?Ns(e):Pl=t,Nl.current=null}function Ns(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Dl)))return void(Pl=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Dl)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Pl=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Pl=t);Pl=t=e}while(null!==t);0===Fl&&(Fl=5)}function Rs(e){var t=Ho();return Zo(99,Os.bind(null,e,t)),null}function Os(e,t){do{Is()}while(null!==es);if(0!=(48&Rl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<a;){var c=31-qt(a),u=1<<c;o[c]=0,l[c]=-1,s[c]=-1,a&=~u}if(null!==os&&0==(24&r)&&os.has(e)&&os.delete(e),e===Ol&&(Pl=Ol=null,Il=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Rl,Rl|=32,Nl.current=null,zr=Wt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(u=s.getSelection&&s.getSelection())&&0!==u.rangeCount){s=u.anchorNode,a=u.anchorOffset,c=u.focusNode,u=u.focusOffset;try{s.nodeType,c.nodeType}catch(C){s=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==a&&3!==g.nodeType||(p=d+a),g!==c||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===a&&(p=d),b===c&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===p||-1===f?null:{start:p,end:f}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Wt=!1,us=null,ds=!1,Yl=r;do{try{Ps()}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);us=null,Yl=r;do{try{for(l=e;null!==Yl;){var y=Yl.flags;if(16&y&&be(Yl.stateNode,""),128&y){var k=Yl.alternate;if(null!==k){var w=k.ref;null!==w&&("function"==typeof w?w(null):w.current=null)}}switch(1038&y){case 2:El(Yl),Yl.flags&=-3;break;case 6:El(Yl),Yl.flags&=-3,Cl(Yl.alternate,Yl);break;case 1024:Yl.flags&=-1025;break;case 1028:Yl.flags&=-1025,Cl(Yl.alternate,Yl);break;case 4:Cl(Yl.alternate,Yl);break;case 8:_l(l,s=Yl);var E=s.alternate;kl(s),null!==E&&kl(E)}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);if(w=Ur,k=hr(),y=w.focusedElem,l=w.selectionRange,k!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(k=l.start,void 0===(w=l.end)&&(w=k),"selectionStart"in y?(y.selectionStart=k,y.selectionEnd=Math.min(w,y.value.length)):(w=(k=y.ownerDocument||document)&&k.defaultView||window).getSelection&&(w=w.getSelection(),s=y.textContent.length,E=Math.min(l.start,s),l=void 0===l.end?E:Math.min(l.end,s),!w.extend&&E>l&&(s=l,l=E,E=s),s=fr(y,E),a=fr(y,l),s&&a&&(1!==w.rangeCount||w.anchorNode!==s.node||w.anchorOffset!==s.offset||w.focusNode!==a.node||w.focusOffset!==a.offset)&&((k=k.createRange()).setStart(s.node,s.offset),w.removeAllRanges(),E>l?(w.addRange(k),w.extend(a.node,a.offset)):(k.setEnd(a.node,a.offset),w.addRange(k))))),k=[];for(w=y;w=w.parentNode;)1===w.nodeType&&k.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<k.length;y++)(w=k[y]).element.scrollLeft=w.left,w.element.scrollTop=w.top}Wt=!!zr,Ur=zr=null,e.current=n,Yl=r;do{try{for(y=e;null!==Yl;){var S=Yl.flags;if(36&S&&bl(y,Yl.alternate,Yl),128&S){k=void 0;var x=Yl.ref;if(null!==x){var _=Yl.stateNode;Yl.tag,k=_,"function"==typeof x?x(k):x.current=k}}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);Yl=null,Fo(),Rl=o}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Yl=r;null!==Yl;)t=Yl.nextEffect,Yl.nextEffect=null,8&Yl.flags&&((S=Yl).sibling=null,S.stateNode=null),Yl=t;if(0===(r=e.pendingLanes)&&(Ql=null),1===r?e===is?as++:(as=0,is=e):as=0,n=n.stateNode,xo&&"function"==typeof xo.onCommitFiberRoot)try{xo.onCommitFiberRoot(So,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,qo()),Kl)throw Kl=!1,e=Xl,Xl=null,e;return 0!=(8&Rl)||Wo(),null}function Ps(){for(;null!==Yl;){var e=Yl.alternate;ds||null===us||(0!=(8&Yl.flags)?Je(Yl,us)&&(ds=!0):13===Yl.tag&&Al(e,Yl)&&Je(Yl,us)&&(ds=!0));var t=Yl.flags;0!=(256&t)&&gl(e,Yl),0==(512&t)||Jl||(Jl=!0,Vo(97,(function(){return Is(),null}))),Yl=Yl.nextEffect}}function Is(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Zo(e,Fs)}return!1}function Ds(e,t){ns.push(t,e),Jl||(Jl=!0,Vo(97,(function(){return Is(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Vo(97,(function(){return Is(),null})))}function Fs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Rl))throw Error(i(331));var t=Rl;Rl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],l=o.destroy;if(o.destroy=void 0,"function"==typeof l)try{l()}catch(c){if(null===a)throw Error(i(330));zs(a,c)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var s=o.create;o.destroy=s()}catch(c){if(null===a)throw Error(i(330));zs(a,c)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Rl=t,Wo(),!0}function Bs(e,t,n){da(e,t=pl(0,t=cl(n,t),1)),t=ps(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r))){var o=fl(n,e=cl(t,e),1);if(da(n,o),o=ps(),null!==(n=hs(n,1)))$t(n,1,o),gs(n,o);else if("function"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ps(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Il&n)===n&&(4===Fl||3===Fl&&(62914560&Il)===Il&&500>qo()-Gl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ho()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=ps(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Hs(e,t,n,r){return new qs(e,t,n,r)}function Gs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Hs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,o,a){var l=2;if(r=e,"function"==typeof e)Gs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Ws(n.children,o,a,t);case D:l=8,o|=16;break;case _:l=8,o|=1;break;case C:return(e=Hs(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case j:return(e=Hs(13,n,t,o)).type=j,e.elementType=j,e.lanes=a,e;case N:return(e=Hs(19,n,t,o)).elementType=N,e.lanes=a,e;case M:return Ys(n,o,a,t);case F:return(e=Hs(24,n,t,o)).elementType=F,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case R:l=14;break e;case O:l=16,r=null;break e;case P:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Hs(l,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Ws(e,t,n,r){return(e=Hs(7,e,r,t)).lanes=n,e}function Ys(e,t,n,r){return(e=Hs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ks(e,t,n){return(e=Hs(6,e,null,t)).lanes=n,e}function Xs(e,t,n){return(t=Hs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Qs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var o=t.current,a=ps(),l=fs(o);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(bo(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var c=n.type;if(bo(c)){n=ko(n,c,s);break e}}n=s}else n=po;return null===t.context?t.context=n:t.pendingContext=n,(t=ua(a,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),da(o,t),ms(o,l,a),l}function ec(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nc(e,t){tc(e,t),(e=e.alternate)&&tc(e,t)}function rc(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Qs(e,t,null!=n&&!0===n.hydrate),t=Hs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,sa(t),e[Jr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function oc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ac(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=ec(i);l.call(e)}}Js(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new rc(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var s=o;o=function(){var e=ec(i);s.call(e)}}ws((function(){Js(t,i,e,o)}))}return ec(i)}function ic(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!oc(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Wl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||mo.current)Di=!0;else{if(0==(n&r)){switch(Di=!1,t.tag){case 3:Zi(t),Va();break;case 5:Ia(t);break;case 1:bo(t.type)&&wo(t);break;case 4:Oa(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;uo(Qo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Qi(e,t,n):(uo(Ma,1&Ma.current),null!==(t=al(e,t,n))?t.sibling:null);uo(Ma,1&Ma.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return ol(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),uo(Ma,Ma.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return al(e,t,n)}Di=0!=(16384&e.flags)}else Di=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=go(t,fo.current),aa(t,n),o=ii(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,bo(r)){var a=!0;wo(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,sa(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&ga(t,r,l,e),o.updater=ba,t.stateNode=o,o._reactInternals=t,wa(t,r,e,n),t=Gi(null,t,r,!0,a,n)}else t.tag=0,Mi(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return Gs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===R)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=qi(null,t,o,e,n);break e;case 1:t=Hi(null,t,o,e,n);break e;case 11:t=Fi(null,t,o,e,n);break e;case 14:t=Bi(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,qi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,Hi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,ca(e,t),fa(t,r,null,n),(r=t.memoizedState.element)===o)Va(),t=al(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(za=Vr(t.stateNode.containerInfo.firstChild),Ba=t,a=Ua=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Wa.push(a);for(n=Ta(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Va();t=t.child}return t;case 5:return Ia(t),null===e&&Ha(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,qr(r,o)?l=null:null!==a&&qr(r,a)&&(t.flags|=16),$i(e,t),Mi(e,t,l,n),t.child;case 6:return null===e&&Ha(t),null;case 13:return Qi(e,t,n);case 4:return Oa(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ca(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Fi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,a=o.value;var s=t.type._context;if(uo(Qo,s._currentValue),s._currentValue=a,null!==l)if(s=l.value,0===(a=cr(s,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823))){if(l.children===o.children&&!mo.current){t=al(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var c=s.dependencies;if(null!==c){l=s.child;for(var u=c.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&a)){1===s.tag&&((u=ua(-1,n&-n)).tag=2,da(s,u)),s.lanes|=n,null!==(u=s.alternate)&&(u.lanes|=n),oa(s.return,n),c.lanes|=n;break}u=u.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Mi(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,aa(t,n),r=r(o=ia(o,a.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),Bi(e,t,o,a=Xo(o.type,a),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,bo(r)?(e=!0,wo(t)):e=!1,aa(t,n),ya(t,r,o),wa(t,r,o,n),Gi(null,t,r,!0,e,n);case 19:return ol(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},rc.prototype.render=function(e){Js(e,this._internalRoot,null,null)},rc.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,ps()),nc(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,ps()),nc(e,67108864))},nt=function(e){if(13===e.tag){var t=ps(),n=fs(e);ms(e,n,t),nc(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=oo(r);if(!o)throw Error(i(90));X(r),ne(r,o)}}}break;case"textarea":ce(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Re=ks,Oe=function(e,t,n,r,o){var a=Rl;Rl|=4;try{return Zo(98,e.bind(null,t,n,r,o))}finally{0===(Rl=a)&&(Vl(),Wo())}},Pe=function(){0==(49&Rl)&&(function(){if(null!==os){var e=os;os=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,qo())}))}Wo()}(),Is())},Ie=function(e,t){var n=Rl;Rl|=2;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wo())}};var lc={Events:[no,ro,oo,je,Ne,Is,{current:!1}]},sc={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},cc={bundleType:sc.bundleType,version:sc.version,rendererPackageName:sc.rendererPackageName,rendererConfig:sc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Qe(e))?null:e.stateNode},findFiberByHostInstance:sc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var uc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!uc.isDisabled&&uc.supportsFiber)try{So=uc.inject(cc),xo=uc}catch(he){}}t.hydrate=function(e,t,n){if(!oc(t))throw Error(i(200));return ac(null,e,t,!0,n)}},7995:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(7439)},5154:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,c,u;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!a(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;for(u=e.entries();!(s=u.next()).done;)if(!a(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,c[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==c[s]&&"__v"!==c[s]&&"__o"!==c[s]||!e.$$typeof)&&!a(e[c[s]],i[c[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},8663:(e,t,n)=>{"use strict";n.d(t,{B6:()=>G,ql:()=>J});var r=n(9496),o=n(507),a=n.n(o),i=n(5154),l=n.n(i),s=n(3670),c=n.n(s),u=n(631),d=n.n(u);function p(){return p=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},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},k=Object.keys(g).map((function(e){return g[e]})),w={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},E=Object.keys(w).reduce((function(e,t){return e[w[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var l=a[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var l=a[i],s=p({},r[l],o[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},j=function(e){return Array.isArray(e)?e.join(""):e},N=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},R=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],P=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[w[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=w[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=D(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=I(n),a=j(t);return o?"<"+e+' data-rh="true" '+o+">"+P(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+P(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+P(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=N(e.metaTags,y),a=N(t,b),i=N(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,o.priority,r)+" "+F(g.LINK,a.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",o,r),link:F(g.LINK,u,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,a,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:c},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],c=t[s]||"";n.getAttribute(s)!==c&&n.setAttribute(s,c),-1===o.indexOf(s)&&o.push(s);var u=a.indexOf(s);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),V(g.TITLE,t)}(u,d);var p={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,o),metaTags:Z(g.META,a),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});G.canUseDOM?(t=a,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){W(t,(function(){Y=null}))})):(W(t),Y=null)):B&&(o=B(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var X=["children"],Q=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(R(this.props,"helmetData"),R(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(k.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+k.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,X),l=Object.keys(i).reduce((function(e,t){return e[E[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,a),s){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:l,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,Q),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof U||(a=new U(a.context,a.instances)),a?r.createElement(K,p({},o,{context:a.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,p({},o,{context:e}))}))},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},198:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,k=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case s:return e;default:return t}}case o:return t}}}function E(e){return w(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return E(e)||w(e)===u},t.isConcurrentMode=E,t.isContextConsumer=function(e){return w(e)===c},t.isContextProvider=function(e){return w(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===h},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===l},t.isStrictMode=function(e){return w(e)===i},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===k||e.$$typeof===b)},t.typeOf=w},6237:(e,t,n)=>{"use strict";e.exports=n(198)},1789:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(3442),o=n(7366),a=n(9496);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},8736:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>u,rU:()=>g});var r=n(3442),o=n(4471),a=n(9496),i=n(4047),l=n(7366),s=n(4529),c=n(8624),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=a.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,l.Z)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,a.createElement("a",u)}));var g=m((function(e,t){var n=e.component,o=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,a.createElement(o,h)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,k=e.location,w=e.sensitive,E=e.strict,S=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=k||e.location,i=p(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:w,strict:E}):null,L=!!(y?y(A,n):A),j="function"==typeof m?m(L):m,N="function"==typeof S?S(L):S;L&&(j=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(j,u),N=(0,l.Z)({},N,f));var R=(0,l.Z)({"aria-current":L&&o||null,className:j,style:N,to:i},C);return b!==v?R.ref=t||_:R.innerRef=_,a.createElement(g,R)}))}))},3442:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>S,TH:()=>O,k6:()=>R,rs:()=>j,s6:()=>v});var r=n(4471),o=n(9496),a=n(507),i=n.n(a),l=n(4047),s=n(8624),c=n(7366),u=n(7720),d=n.n(u),p=(n(6237),n(4529)),f=(n(2535),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=o.createContext||function(e,t){var n,a,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},o.getValue=function(){return this.context[l]?this.context[l].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return c.contextTypes=((a={})[l]=i().object,a),{Provider:s,Consumer:c}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var k={},w=1e4,E=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,l=void 0!==i&&i,s=n.sensitive,c=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=k[n]||(k[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return E<w&&(r[e]=a,E++),a}(n,{end:a,strict:l,sensitive:c}),o=r.regexp,i=r.keys,s=o.exec(e);if(!s)return null;var u=s[0],p=s.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,a=(0,c.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,u=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===o.Children.count(e)}(l)&&(l=null),o.createElement(v.Provider,{value:a},a.match?l?"function"==typeof l?l(a):l:u?o.createElement(u,a):d?d(a):null:"function"==typeof l?l(a):null)}))},t}(o.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}o.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(a.pathname,(0,c.Z)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var N=o.useContext;function R(){return N(b)}function O(){return N(v).location}},1288:(e,t,n)=>{"use strict";var r=n(2767),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var c=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),c=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var k={current:null},w=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,a={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)w.call(t,r)&&!E.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(1===s)a.children=n;else if(1<s){for(var c=Array(s),u=0;u<s;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===a[r]&&(a[r]=s[r]);return{$$typeof:o,type:e,key:i,ref:l,props:a,_owner:k.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var u=r+C(l=e[c],c);s+=T(l,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,u=r+C(l,c++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var j={current:null};function N(){var e=j.current;if(null===e)throw Error(f(321));return e}var R={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:k,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=R,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var a=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=k.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)w.call(t,u)&&!E.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){c=Array(u);for(var d=0;d<u;d++)c[d]=arguments[d+2];a.children=c}return{$$typeof:o,type:e.type,key:i,ref:l,props:a,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:c,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},9496:(e,t,n)=>{"use strict";e.exports=n(1288)},9787:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,u=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==c?setTimeout(n,0,e):(c=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},o=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var k=new MessageChannel,w=k.port2;k.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?w.postMessage(null):(h=!1,g=null)}catch(n){throw w.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,w.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},o=function(){f(b),b=-1}}function E(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<_(o,t)))break e;e[r]=t,e[n]=o,n=r}}function S(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],l=a+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,j=3,N=!1,R=!1,O=!1;function P(e){for(var t=S(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,E(C,t)}t=S(T)}}function I(e){if(O=!1,P(e),!R)if(null!==S(C))R=!0,n(D);else{var t=S(T);null!==t&&r(I,t.startTime-e)}}function D(e,n){R=!1,O&&(O=!1,o()),N=!0;var a=j;try{for(P(n),L=S(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,j=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===S(C)&&x(C),P(n)}else x(C);L=S(C)}if(null!==L)var s=!0;else{var c=S(T);null!==c&&r(I,c.startTime-n),s=!1}return s}finally{L=null,j=a,N=!1}}var M=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){R||N||(R=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return j},t.unstable_getFirstCallbackNode=function(){return S(C)},t.unstable_next=function(e){switch(j){case 1:case 2:case 3:var t=3;break;default:t=j}var n=j;j=t;try{return e()}finally{j=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=j;j=e;try{return t()}finally{j=n}},t.unstable_scheduleCallback=function(e,a,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:a,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,E(T,e),null===S(C)&&e===S(T)&&(O?o():O=!0,r(I,i-l))):(e.sortIndex=s,E(C,e),R||N||(R=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=j;return function(){var n=j;j=t;try{return e.apply(this,arguments)}finally{j=n}}}},8051:(e,t,n)=>{"use strict";e.exports=n(9787)},631:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<a.length;s++){var c=a[s];if(!l(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},2978:(e,t,n)=>{"use strict";var r=n(9496);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,u=r[1];return l((function(){o.value=n,o.getSnapshot=t,c(o)&&u({inst:o})}),[e,n,t]),i((function(){return c(o)&&u({inst:o}),e((function(){c(o)&&u({inst:o})}))}),[e]),s(n),n};void 0!==r.useSyncExternalStore&&r.useSyncExternalStore},4241:(e,t,n)=>{"use strict";n(2978)},6809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"IoCuak",tagline:"The simple IoC container",url:"http://cuaklabs.github.io",baseUrl:"/iocuak-docs/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"cuaklabs",projectName:"iocuak-docs",deploymentBranch:"gh-pages",presets:[["classic",{docs:{sidebarPath:"/home/runner/work/iocuak-docs/iocuak-docs/sidebars.js"},blog:{showReadingTime:!0},theme:{customCss:"/home/runner/work/iocuak-docs/iocuak-docs/src/css/custom.css"}}]],themeConfig:{navbar:{title:"IoCuak",logo:{alt:"IoCuak docs",src:"img/logo.svg"},items:[{type:"doc",docId:"tutorial/introduction",position:"left",label:"Tutorial"},{type:"docsVersionDropdown",label:"Versions",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/cuaklabs/iocuak/tree/master/packages/iocuak",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"More",items:[{label:"GitHub",href:"https://github.com/cuaklabs/iocuak/tree/master/packages/iocuak"}]}],copyright:"Copyright \xa9 2023 IoCuak docs, Inc. Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7366:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():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},r.apply(this,arguments)}n.d(t,{Z:()=>r})},4471:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>o})},4529:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},8624:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/iocuak-docs/docs/0.3.1-01a":{"__comp":"1be78505","__context":{"plugin":"72b1f992"},"versionMetadata":"33762072"},"/iocuak-docs/docs/0.3.1/api/container-b89":{"__comp":"17896441","content":"898848d2"},"/iocuak-docs/docs/0.3.1/api/injection/inject-decorator-73b":{"__comp":"17896441","content":"23221674"},"/iocuak-docs/docs/0.3.1/api/injection/inject-tag-decorator-33c":{"__comp":"17896441","content":"6d4bebe7"},"/iocuak-docs/docs/0.3.1/api/injection/injectable-decorator-8f1":{"__comp":"17896441","content":"f5fb8451"},"/iocuak-docs/docs/0.3.1/api/injection/injectFromBase-decorator-d46":{"__comp":"17896441","content":"49b0859b"},"/iocuak-docs/docs/0.3.1/api/metadata/introduction-44d":{"__comp":"17896441","content":"8200b41e"},"/iocuak-docs/docs/0.3.1/api/metadata/metadata-provider-409":{"__comp":"17896441","content":"0cb0b728"},"/iocuak-docs/docs/0.3.1/concepts/binding-2f1":{"__comp":"17896441","content":"f1668c61"},"/iocuak-docs/docs/0.3.1/concepts/class-metadata-670":{"__comp":"17896441","content":"028691c8"},"/iocuak-docs/docs/0.3.1/tutorial/container-modules/creating-modules-3ae":{"__comp":"17896441","content":"ffc29198"},"/iocuak-docs/docs/0.3.1/tutorial/container-modules/introduction-603":{"__comp":"17896441","content":"b0d4e835"},"/iocuak-docs/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata-f1a":{"__comp":"17896441","content":"429c1a5e"},"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/inject-decorator-411":{"__comp":"17896441","content":"e857c64f"},"/iocuak-docs/docs/0.3.1/tutorial/decorating-classes/injectable-decorator-045":{"__comp":"17896441","content":"2b7a7e79"},"/iocuak-docs/docs/0.3.1/tutorial/introduction-743":{"__comp":"17896441","content":"98f3f66e"},"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/binding-a-service-8fa":{"__comp":"17896441","content":"263d6723"},"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/creating-instances-b00":{"__comp":"17896441","content":"05a46859"},"/iocuak-docs/docs/0.3.1/tutorial/the-container-object/introduction-563":{"__comp":"17896441","content":"78ce0ec1"},"/iocuak-docs/docs/0.4.0-719":{"__comp":"1be78505","__context":{"plugin":"72b1f992"},"versionMetadata":"db82a1c0"},"/iocuak-docs/docs/0.4.0/api/container-80d":{"__comp":"17896441","content":"fa3fb5e6"},"/iocuak-docs/docs/0.4.0/api/injection/inject-decorator-7ac":{"__comp":"17896441","content":"3921882b"},"/iocuak-docs/docs/0.4.0/api/injection/inject-tag-decorator-912":{"__comp":"17896441","content":"250fe880"},"/iocuak-docs/docs/0.4.0/api/injection/injectable-decorator-698":{"__comp":"17896441","content":"4292aabd"},"/iocuak-docs/docs/0.4.0/api/injection/injectFromBase-decorator-045":{"__comp":"17896441","content":"4b1346bc"},"/iocuak-docs/docs/0.4.0/api/metadata/introduction-2c6":{"__comp":"17896441","content":"5c7e0021"},"/iocuak-docs/docs/0.4.0/api/metadata/metadata-provider-119":{"__comp":"17896441","content":"e3e01cfb"},"/iocuak-docs/docs/0.4.0/concepts/binding-1f1":{"__comp":"17896441","content":"1bff9566"},"/iocuak-docs/docs/0.4.0/concepts/class-metadata-da0":{"__comp":"17896441","content":"87f77671"},"/iocuak-docs/docs/0.4.0/tutorial/container-modules/creating-modules-9df":{"__comp":"17896441","content":"8044f45a"},"/iocuak-docs/docs/0.4.0/tutorial/container-modules/introduction-4c3":{"__comp":"17896441","content":"f29603b8"},"/iocuak-docs/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata-506":{"__comp":"17896441","content":"7d9bb284"},"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/inject-decorator-14f":{"__comp":"17896441","content":"1c5f3ec8"},"/iocuak-docs/docs/0.4.0/tutorial/decorating-classes/injectable-decorator-ca4":{"__comp":"17896441","content":"caf8c733"},"/iocuak-docs/docs/0.4.0/tutorial/introduction-39b":{"__comp":"17896441","content":"5b645440"},"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/binding-a-service-646":{"__comp":"17896441","content":"08e8d5fd"},"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/creating-instances-cad":{"__comp":"17896441","content":"5b54de31"},"/iocuak-docs/docs/0.4.0/tutorial/the-container-object/introduction-db5":{"__comp":"17896441","content":"bcaa6898"},"/iocuak-docs/docs/next-d32":{"__comp":"1be78505","__context":{"plugin":"72b1f992"},"versionMetadata":"935f2afb"},"/iocuak-docs/docs/next/api/container-5e8":{"__comp":"17896441","content":"7e923665"},"/iocuak-docs/docs/next/api/injection/inject-decorator-6f7":{"__comp":"17896441","content":"7733bc07"},"/iocuak-docs/docs/next/api/injection/inject-tag-decorator-08d":{"__comp":"17896441","content":"3654fd5c"},"/iocuak-docs/docs/next/api/injection/injectable-decorator-b88":{"__comp":"17896441","content":"6254d461"},"/iocuak-docs/docs/next/api/injection/injectFromBase-decorator-3fe":{"__comp":"17896441","content":"32336a78"},"/iocuak-docs/docs/next/api/metadata/introduction-888":{"__comp":"17896441","content":"79b7c907"},"/iocuak-docs/docs/next/api/metadata/metadata-provider-4a7":{"__comp":"17896441","content":"70a4eefc"},"/iocuak-docs/docs/next/concepts/binding-0d5":{"__comp":"17896441","content":"2a866bd1"},"/iocuak-docs/docs/next/concepts/class-metadata-d4c":{"__comp":"17896441","content":"3c73646c"},"/iocuak-docs/docs/next/concepts/container-module-metadata-f07":{"__comp":"17896441","content":"0a1d241c"},"/iocuak-docs/docs/next/tutorial/container-modules/creating-modules-8cb":{"__comp":"17896441","content":"806df6bd"},"/iocuak-docs/docs/next/tutorial/container-modules/introduction-70f":{"__comp":"17896441","content":"e1a62a5e"},"/iocuak-docs/docs/next/tutorial/container-modules/loading-modules-from-metadata-734":{"__comp":"17896441","content":"1a546ad0"},"/iocuak-docs/docs/next/tutorial/decorating-classes/inject-decorator-a82":{"__comp":"17896441","content":"555e17e8"},"/iocuak-docs/docs/next/tutorial/decorating-classes/injectable-decorator-633":{"__comp":"17896441","content":"3d354aff"},"/iocuak-docs/docs/next/tutorial/introduction-a3d":{"__comp":"17896441","content":"59a64286"},"/iocuak-docs/docs/next/tutorial/the-container-object/binding-a-service-acf":{"__comp":"17896441","content":"7995d4bf"},"/iocuak-docs/docs/next/tutorial/the-container-object/creating-instances-b33":{"__comp":"17896441","content":"158424f1"},"/iocuak-docs/docs/next/tutorial/the-container-object/introduction-d78":{"__comp":"17896441","content":"4614d64c"},"/iocuak-docs/docs-ddf":{"__comp":"1be78505","__context":{"plugin":"72b1f992"},"versionMetadata":"0030fd86"},"/iocuak-docs/docs/api/container-dff":{"__comp":"17896441","content":"2da43288"},"/iocuak-docs/docs/api/injection/inject-decorator-b05":{"__comp":"17896441","content":"9dc3c96b"},"/iocuak-docs/docs/api/injection/inject-tag-decorator-1a4":{"__comp":"17896441","content":"0c8baa8f"},"/iocuak-docs/docs/api/injection/injectable-decorator-ecd":{"__comp":"17896441","content":"c5629734"},"/iocuak-docs/docs/api/injection/injectFromBase-decorator-c13":{"__comp":"17896441","content":"9fbb8af0"},"/iocuak-docs/docs/api/metadata/introduction-b7b":{"__comp":"17896441","content":"58d9cd49"},"/iocuak-docs/docs/api/metadata/metadata-provider-3ed":{"__comp":"17896441","content":"fe5baf42"},"/iocuak-docs/docs/concepts/binding-85f":{"__comp":"17896441","content":"b6b4f634"},"/iocuak-docs/docs/concepts/class-metadata-0f0":{"__comp":"17896441","content":"c8545ad7"},"/iocuak-docs/docs/concepts/container-module-metadata-129":{"__comp":"17896441","content":"c47f43be"},"/iocuak-docs/docs/tutorial/container-modules/creating-modules-797":{"__comp":"17896441","content":"8b238a11"},"/iocuak-docs/docs/tutorial/container-modules/introduction-15d":{"__comp":"17896441","content":"1b5e222d"},"/iocuak-docs/docs/tutorial/container-modules/loading-modules-from-metadata-740":{"__comp":"17896441","content":"8fa4da7f"},"/iocuak-docs/docs/tutorial/decorating-classes/inject-decorator-734":{"__comp":"17896441","content":"6074383c"},"/iocuak-docs/docs/tutorial/decorating-classes/injectable-decorator-e55":{"__comp":"17896441","content":"7bd4b37f"},"/iocuak-docs/docs/tutorial/introduction-92e":{"__comp":"17896441","content":"7be4df85"},"/iocuak-docs/docs/tutorial/the-container-object/binding-a-service-975":{"__comp":"17896441","content":"ac95828e"},"/iocuak-docs/docs/tutorial/the-container-object/creating-instances-090":{"__comp":"17896441","content":"79e19905"},"/iocuak-docs/docs/tutorial/the-container-object/introduction-ad6":{"__comp":"17896441","content":"8767fd65"},"/iocuak-docs/-1eb":{"__comp":"1df93b7f","__context":{"plugin":"4b7058cd"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=8255,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/runtime~main.839ff0b8.js b/assets/js/runtime~main.839ff0b8.js deleted file mode 100644 index 427ceb6ce..000000000 --- a/assets/js/runtime~main.839ff0b8.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,f,b,c,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=d,r.c=t,e=[],r.O=(a,f,b,c)=>{if(!f){var d=1/0;for(i=0;i<e.length;i++){f=e[i][0],b=e[i][1],c=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&c||d>=c)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,c<d&&(d=c));if(t){e.splice(i--,1);var n=b();void 0!==n&&(a=n)}}return a}c=c||0;for(var i=e.length;i>0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[f,b,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var d={};a=a||[null,f({}),f([]),f(f)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(c,d),c},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",378:"5b54de31",415:"f1668c61",467:"3654fd5c",494:"db82a1c0",513:"79e19905",563:"8767fd65",581:"8044f45a",856:"0cb0b728",1109:"e857c64f",1149:"3921882b",1391:"b6b4f634",1506:"4292aabd",1648:"5c7e0021",1784:"f5fb8451",1887:"0030fd86",1899:"806df6bd",2012:"7e923665",2036:"2da43288",2140:"59a64286",2298:"7733bc07",2344:"6074383c",2419:"79b7c907",2855:"08e8d5fd",2867:"2b7a7e79",3095:"fa3fb5e6",3237:"1df93b7f",3347:"98f3f66e",3615:"c5629734",3695:"9dc3c96b",3824:"3c73646c",3896:"23221674",3948:"ac95828e",3970:"2a866bd1",4074:"7d9bb284",4334:"1b5e222d",4651:"78ce0ec1",4678:"7995d4bf",4805:"1a546ad0",5121:"1c5f3ec8",5127:"b0d4e835",5360:"ffc29198",5389:"e1a62a5e",5533:"898848d2",5586:"6254d461",5628:"c8545ad7",5735:"32336a78",5850:"87f77671",5903:"1bff9566",6024:"e3e01cfb",6052:"555e17e8",6204:"8fa4da7f",6206:"bcaa6898",6334:"0a1d241c",6847:"49b0859b",6943:"05a46859",6944:"4b1346bc",7094:"158424f1",7278:"4b7058cd",7378:"0c8baa8f",7538:"58d9cd49",7669:"33762072",7722:"70a4eefc",7918:"17896441",8129:"028691c8",8141:"3d354aff",8531:"9fbb8af0",8721:"263d6723",8884:"c47f43be",9099:"250fe880",9118:"fe5baf42",9128:"5b645440",9230:"caf8c733",9323:"f29603b8",9332:"4614d64c",9402:"6d4bebe7",9435:"429c1a5e",9513:"8200b41e",9514:"1be78505",9519:"8b238a11",9688:"7be4df85",9823:"72b1f992",9921:"7bd4b37f"}[e]||e)+"."+{53:"a54fec48",378:"4fc59562",415:"c2a2819e",467:"8cac0f3b",494:"f6c6a2e8",513:"7c3935c9",563:"8b15a35b",581:"05c36f86",856:"892909f5",1109:"8d610b96",1149:"2c6f0c4c",1391:"c0810a48",1506:"c1f90397",1648:"029ae82f",1784:"01ed7492",1887:"ff5b2946",1899:"23472c6d",2012:"1758c6ad",2036:"2e690b93",2140:"262d4d09",2298:"669052b1",2344:"55dbcb7a",2419:"aea81bdc",2855:"6687672c",2867:"2463ef19",3095:"cd3352a3",3237:"748b41e5",3347:"15ff64c5",3615:"0c7a28c4",3695:"d053502b",3824:"f34376c8",3896:"c4619f30",3948:"592034be",3970:"6868a25d",4074:"cf880ece",4334:"9aaecd32",4651:"2c10f28f",4678:"92195ecc",4805:"4d0d0193",5121:"6597271e",5127:"0ffca3de",5360:"02c8bbe6",5389:"4a26b29b",5533:"13cf5b3e",5586:"918fea02",5628:"14aa3daa",5735:"6d95b447",5850:"e7cb66cd",5903:"c689f081",6024:"d34490f3",6052:"645e5d14",6204:"bc760acf",6206:"2578cdbd",6334:"010eff87",6847:"5970f139",6943:"1b3261bc",6944:"b1b662e6",7094:"e39d0c36",7278:"6e376447",7378:"554932f1",7538:"f9bc3ab5",7669:"05988e67",7722:"1c4e1baa",7918:"e5480f76",8129:"96833354",8141:"02b83435",8531:"4072b955",8721:"4f01583b",8884:"67ce743b",9099:"f73c9be4",9118:"6fc8c283",9128:"f7208092",9230:"8814640b",9323:"12b7f607",9332:"0d47143b",9402:"77f20357",9435:"4432fa35",9513:"8fda5284",9514:"29de1c5a",9519:"8284d859",9688:"f8eb8e84",9823:"f22605d7",9921:"a9544f04",9952:"1954b61c"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},c="iocuak-docs:",r.l=(e,a,f,d)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==c+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",c+f),t.src=e),b[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var c=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/iocuak-docs/",r.gca=function(e){return e={17896441:"7918",23221674:"3896",33762072:"7669","935f2afb":"53","5b54de31":"378",f1668c61:"415","3654fd5c":"467",db82a1c0:"494","79e19905":"513","8767fd65":"563","8044f45a":"581","0cb0b728":"856",e857c64f:"1109","3921882b":"1149",b6b4f634:"1391","4292aabd":"1506","5c7e0021":"1648",f5fb8451:"1784","0030fd86":"1887","806df6bd":"1899","7e923665":"2012","2da43288":"2036","59a64286":"2140","7733bc07":"2298","6074383c":"2344","79b7c907":"2419","08e8d5fd":"2855","2b7a7e79":"2867",fa3fb5e6:"3095","1df93b7f":"3237","98f3f66e":"3347",c5629734:"3615","9dc3c96b":"3695","3c73646c":"3824",ac95828e:"3948","2a866bd1":"3970","7d9bb284":"4074","1b5e222d":"4334","78ce0ec1":"4651","7995d4bf":"4678","1a546ad0":"4805","1c5f3ec8":"5121",b0d4e835:"5127",ffc29198:"5360",e1a62a5e:"5389","898848d2":"5533","6254d461":"5586",c8545ad7:"5628","32336a78":"5735","87f77671":"5850","1bff9566":"5903",e3e01cfb:"6024","555e17e8":"6052","8fa4da7f":"6204",bcaa6898:"6206","0a1d241c":"6334","49b0859b":"6847","05a46859":"6943","4b1346bc":"6944","158424f1":"7094","4b7058cd":"7278","0c8baa8f":"7378","58d9cd49":"7538","70a4eefc":"7722","028691c8":"8129","3d354aff":"8141","9fbb8af0":"8531","263d6723":"8721",c47f43be:"8884","250fe880":"9099",fe5baf42:"9118","5b645440":"9128",caf8c733:"9230",f29603b8:"9323","4614d64c":"9332","6d4bebe7":"9402","429c1a5e":"9435","8200b41e":"9513","1be78505":"9514","8b238a11":"9519","7be4df85":"9688","72b1f992":"9823","7bd4b37f":"9921"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)f.push(b[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var c=new Promise(((f,c)=>b=e[a]=[f,c]));f.push(b[2]=c);var d=r.p+r.u(a),t=new Error;r.l(d,(f=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var c=f&&("load"===f.type?"missing":f.type),d=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+d+")",t.name="ChunkLoadError",t.type=c,t.request=d,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var b,c,d=f[0],t=f[1],o=f[2],n=0;if(d.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(f);n<d.length;n++)c=d[n],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return r.O(i)},f=self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/assets/js/runtime~main.fe2e787e.js b/assets/js/runtime~main.fe2e787e.js new file mode 100644 index 000000000..70d7a8ac9 --- /dev/null +++ b/assets/js/runtime~main.fe2e787e.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,f,c,a,b,d={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(f,c,a,b)=>{if(!c){var d=1/0;for(i=0;i<e.length;i++){c=e[i][0],a=e[i][1],b=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b<d&&(d=b));if(t){e.splice(i--,1);var n=a();void 0!==n&&(f=n)}}return f}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,a,b]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};f=f||[null,c({}),c([]),c(c)];for(var t=2&a&&e;"object"==typeof t&&!~f.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((f=>d[f]=()=>e[f]));return d.default=()=>e,r.d(b,d),b},r.d=(e,f)=>{for(var c in f)r.o(f,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:f[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,c)=>(r.f[c](e,f),f)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",378:"5b54de31",415:"f1668c61",467:"3654fd5c",494:"db82a1c0",513:"79e19905",563:"8767fd65",581:"8044f45a",856:"0cb0b728",1109:"e857c64f",1149:"3921882b",1391:"b6b4f634",1506:"4292aabd",1648:"5c7e0021",1784:"f5fb8451",1887:"0030fd86",1899:"806df6bd",2012:"7e923665",2036:"2da43288",2140:"59a64286",2298:"7733bc07",2344:"6074383c",2419:"79b7c907",2855:"08e8d5fd",2867:"2b7a7e79",3095:"fa3fb5e6",3237:"1df93b7f",3347:"98f3f66e",3615:"c5629734",3695:"9dc3c96b",3824:"3c73646c",3896:"23221674",3948:"ac95828e",3970:"2a866bd1",4074:"7d9bb284",4334:"1b5e222d",4651:"78ce0ec1",4678:"7995d4bf",4805:"1a546ad0",5121:"1c5f3ec8",5127:"b0d4e835",5360:"ffc29198",5389:"e1a62a5e",5533:"898848d2",5586:"6254d461",5628:"c8545ad7",5735:"32336a78",5850:"87f77671",5903:"1bff9566",6024:"e3e01cfb",6052:"555e17e8",6204:"8fa4da7f",6206:"bcaa6898",6334:"0a1d241c",6847:"49b0859b",6943:"05a46859",6944:"4b1346bc",7094:"158424f1",7278:"4b7058cd",7378:"0c8baa8f",7538:"58d9cd49",7669:"33762072",7722:"70a4eefc",7918:"17896441",8129:"028691c8",8141:"3d354aff",8531:"9fbb8af0",8721:"263d6723",8884:"c47f43be",9099:"250fe880",9118:"fe5baf42",9128:"5b645440",9230:"caf8c733",9323:"f29603b8",9332:"4614d64c",9402:"6d4bebe7",9435:"429c1a5e",9513:"8200b41e",9514:"1be78505",9519:"8b238a11",9688:"7be4df85",9823:"72b1f992",9921:"7bd4b37f"}[e]||e)+"."+{53:"a54fec48",378:"2d175fa0",415:"825dbb46",467:"86aae805",494:"f6c6a2e8",513:"4d1ccaaf",563:"cd575103",581:"434da5f2",856:"6cb66d57",1109:"99e3f14c",1149:"e10b5fc9",1391:"5cf09006",1506:"14d3a5b7",1648:"948b601c",1784:"b0ea257f",1887:"ff5b2946",1899:"53a7b8f2",2012:"b46e2686",2036:"ba799772",2140:"13f5d01b",2298:"ee4ab91a",2344:"4adf7c6c",2419:"b6d9706d",2855:"8e01ee7d",2867:"460b1a09",3095:"fb00d6a5",3237:"f29aed5a",3347:"e63bcd59",3615:"8655175f",3695:"f3252d6f",3824:"ab686599",3896:"abd3232e",3948:"fc3f9c12",3970:"e0c255a9",4074:"8332684f",4334:"8d377320",4651:"44308816",4678:"4b946712",4805:"c759507d",5121:"8de57751",5127:"7fc30e9f",5360:"c97b6302",5389:"e7f62a41",5533:"0798f3b9",5586:"28670d82",5628:"b5a745cb",5735:"319592e9",5850:"7d3b71ca",5903:"cb9fc282",6024:"24514ea3",6052:"b3c6c4fa",6204:"76684f85",6206:"82a16373",6334:"5ca46421",6847:"006d91bf",6943:"2d4e98b3",6944:"fe8e782b",7094:"0e92f870",7278:"6e376447",7378:"1de4703d",7538:"de66798b",7669:"05988e67",7722:"9c4a2f45",7918:"ac74d083",8129:"bf054f18",8141:"e0519244",8531:"cbbb8b0a",8721:"4ffcb76d",8884:"90fd83f7",9099:"b1f3560a",9118:"dfc1bd29",9128:"869ef8f2",9230:"8e4b653a",9323:"bdea253d",9332:"7f56a26f",9402:"dd6a902c",9435:"afc9de83",9513:"38c61b05",9514:"5bc8aa40",9519:"a01f868d",9688:"ba2f9f73",9697:"c14856e0",9823:"f22605d7",9921:"fe91cb68"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),a={},b="iocuak-docs:",r.l=(e,f,c,d)=>{if(a[e])a[e].push(f);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+c){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+c),t.src=e),a[e]=[f];var l=(f,c)=>{t.onerror=t.onload=null,clearTimeout(s);var b=a[e];if(delete a[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(c))),f)return f(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/iocuak-docs/",r.gca=function(e){return e={17896441:"7918",23221674:"3896",33762072:"7669","935f2afb":"53","5b54de31":"378",f1668c61:"415","3654fd5c":"467",db82a1c0:"494","79e19905":"513","8767fd65":"563","8044f45a":"581","0cb0b728":"856",e857c64f:"1109","3921882b":"1149",b6b4f634:"1391","4292aabd":"1506","5c7e0021":"1648",f5fb8451:"1784","0030fd86":"1887","806df6bd":"1899","7e923665":"2012","2da43288":"2036","59a64286":"2140","7733bc07":"2298","6074383c":"2344","79b7c907":"2419","08e8d5fd":"2855","2b7a7e79":"2867",fa3fb5e6:"3095","1df93b7f":"3237","98f3f66e":"3347",c5629734:"3615","9dc3c96b":"3695","3c73646c":"3824",ac95828e:"3948","2a866bd1":"3970","7d9bb284":"4074","1b5e222d":"4334","78ce0ec1":"4651","7995d4bf":"4678","1a546ad0":"4805","1c5f3ec8":"5121",b0d4e835:"5127",ffc29198:"5360",e1a62a5e:"5389","898848d2":"5533","6254d461":"5586",c8545ad7:"5628","32336a78":"5735","87f77671":"5850","1bff9566":"5903",e3e01cfb:"6024","555e17e8":"6052","8fa4da7f":"6204",bcaa6898:"6206","0a1d241c":"6334","49b0859b":"6847","05a46859":"6943","4b1346bc":"6944","158424f1":"7094","4b7058cd":"7278","0c8baa8f":"7378","58d9cd49":"7538","70a4eefc":"7722","028691c8":"8129","3d354aff":"8141","9fbb8af0":"8531","263d6723":"8721",c47f43be:"8884","250fe880":"9099",fe5baf42:"9118","5b645440":"9128",caf8c733:"9230",f29603b8:"9323","4614d64c":"9332","6d4bebe7":"9402","429c1a5e":"9435","8200b41e":"9513","1be78505":"9514","8b238a11":"9519","7be4df85":"9688","72b1f992":"9823","7bd4b37f":"9921"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,c)=>{var a=r.o(e,f)?e[f]:void 0;if(0!==a)if(a)c.push(a[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var b=new Promise(((c,b)=>a=e[f]=[c,b]));c.push(a[2]=b);var d=r.p+r.u(f),t=new Error;r.l(d,(c=>{if(r.o(e,f)&&(0!==(a=e[f])&&(e[f]=void 0),a)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+f+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,a[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,c)=>{var a,b,d=c[0],t=c[1],o=c[2],n=0;if(d.some((f=>0!==e[f]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(f&&f(c);n<d.length;n++)b=d[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},c=self.webpackChunkiocuak_docs=self.webpackChunkiocuak_docs||[];c.forEach(f.bind(null,0)),c.push=f.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/docs/0.3.1/api/container/index.html b/docs/0.3.1/api/container/index.html index 391fa4406..0c38f56e2 100644 --- a/docs/0.3.1/api/container/index.html +++ b/docs/0.3.1/api/container/index.html @@ -4,13 +4,13 @@ <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v2.4.1"> <title data-rh="true">Container API | IoCuak - - + +
-
Version: 0.3.1

Container API

bind(type)

Binds a type. The container takes any binding associated to that type and process it.

bindToValue(options)

Binds a value. The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
valueValue to bindunknown
note

Values are always bound in singleton scope

get(serviceId)

Returns a service by its id. If necessary, the service is instantiated.

Consider the binding page as reference to know more about instance details.

getByTag(tag)

Returns all the services associated to a tag. If necessary, services are instantiated.

getAllBindinds()

Returns all the bindings registered in the container.

load(containerModule)

Loads a container module.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

loadMetadata(containerModuleMetadata)

Loads container module metadata

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

unbind(serviceId)

Unbinds a bound service by its id.

- - +
Version: 0.3.1

Container API

bind(type)

Binds a type. The container takes any binding associated to that type and process it.

bindToValue(options)

Binds a value. The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
valueValue to bindunknown
note

Values are always bound in singleton scope

get(serviceId)

Returns a service by its id. If necessary, the service is instantiated.

Consider the binding page as reference to know more about instance details.

getByTag(tag)

Returns all the services associated to a tag. If necessary, services are instantiated.

getAllBindinds()

Returns all the bindings registered in the container.

load(containerModule)

Loads a container module.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

loadMetadata(containerModuleMetadata)

Loads container module metadata

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

unbind(serviceId)

Unbinds a bound service by its id.

+ + \ No newline at end of file diff --git a/docs/0.3.1/api/injection/inject-decorator/index.html b/docs/0.3.1/api/injection/inject-decorator/index.html index 0c2306e05..6d3a85e46 100644 --- a/docs/0.3.1/api/injection/inject-decorator/index.html +++ b/docs/0.3.1/api/injection/inject-decorator/index.html @@ -4,13 +4,13 @@ inject | IoCuak - - + +
-
Version: 0.3.1

inject

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

- - +
Version: 0.3.1

inject

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

+ + \ No newline at end of file diff --git a/docs/0.3.1/api/injection/inject-tag-decorator/index.html b/docs/0.3.1/api/injection/inject-tag-decorator/index.html index 115478c05..9ab14a302 100644 --- a/docs/0.3.1/api/injection/inject-tag-decorator/index.html +++ b/docs/0.3.1/api/injection/inject-tag-decorator/index.html @@ -4,13 +4,13 @@ injectTag | IoCuak - - + +
-
Version: 0.3.1

injectTag

This decorator targets a property or a parameter and provides the services associated to that tag.

import { injectTag } from '@cuaklabs/iocuak';

import { dummyTag } from 'some/path';

class Dummy {
@injectTag(dummyTag)
public foo: unknown[];
}

Troperty foo is injected with the services associated to the dummyTag tag.

- - +
Version: 0.3.1

injectTag

This decorator targets a property or a parameter and provides the services associated to that tag.

import { injectTag } from '@cuaklabs/iocuak';

import { dummyTag } from 'some/path';

class Dummy {
@injectTag(dummyTag)
public foo: unknown[];
}

Troperty foo is injected with the services associated to the dummyTag tag.

+ + \ No newline at end of file diff --git a/docs/0.3.1/api/injection/injectFromBase-decorator/index.html b/docs/0.3.1/api/injection/injectFromBase-decorator/index.html index 57bacde60..fc591e3f4 100644 --- a/docs/0.3.1/api/injection/injectFromBase-decorator/index.html +++ b/docs/0.3.1/api/injection/injectFromBase-decorator/index.html @@ -4,13 +4,13 @@ injectFromBase | IoCuak - - + +
-
Version: 0.3.1

injectFromBase

@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.

import { inject, injectable } from '@cuaklabs/iocuak';

import { dummyFooServiceId, dummyBarServiceId } from 'some/path';

@injectable()
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

/*
* @injectFromBase() allows DummyChild to have a foo property with
* the same metadata as if decorated with @inject(dummyFooServiceId
*/

@injectable()
@injectFromBase()
class DummyChild extends Dummy {
@inject(dummyBarServiceId)
public bar: unknown;
}

- - +
Version: 0.3.1

injectFromBase

@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.

import { inject, injectable } from '@cuaklabs/iocuak';

import { dummyFooServiceId, dummyBarServiceId } from 'some/path';

@injectable()
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

/*
* @injectFromBase() allows DummyChild to have a foo property with
* the same metadata as if decorated with @inject(dummyFooServiceId
*/

@injectable()
@injectFromBase()
class DummyChild extends Dummy {
@inject(dummyBarServiceId)
public bar: unknown;
}

+ + \ No newline at end of file diff --git a/docs/0.3.1/api/injection/injectable-decorator/index.html b/docs/0.3.1/api/injection/injectable-decorator/index.html index 63c3b4aa3..860e74d01 100644 --- a/docs/0.3.1/api/injection/injectable-decorator/index.html +++ b/docs/0.3.1/api/injection/injectable-decorator/index.html @@ -4,13 +4,13 @@ injectable | IoCuak - - + +
-
Version: 0.3.1

injectable

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}

The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
scopeBinding scopeBindingScope
info

Consider binding docs as reference.

- - +
Version: 0.3.1

injectable

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}

The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
scopeBinding scopeBindingScope
info

Consider binding docs as reference.

+ + \ No newline at end of file diff --git a/docs/0.3.1/api/metadata/introduction/index.html b/docs/0.3.1/api/metadata/introduction/index.html index 5f698cf32..5f7952960 100644 --- a/docs/0.3.1/api/metadata/introduction/index.html +++ b/docs/0.3.1/api/metadata/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.3.1

Introduction

This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.

- - + + \ No newline at end of file diff --git a/docs/0.3.1/api/metadata/metadata-provider/index.html b/docs/0.3.1/api/metadata/metadata-provider/index.html index db8db891f..fdd7b4dd4 100644 --- a/docs/0.3.1/api/metadata/metadata-provider/index.html +++ b/docs/0.3.1/api/metadata/metadata-provider/index.html @@ -4,13 +4,13 @@ Metadata provider | IoCuak - - + +
-
Version: 0.3.1

Metadata provider

The MetadataProvider class is provided to easily extract metadata of a given type

getBindingMetadata(type)

Provides binding metadata associated to that type.

note

Values (bound by Container.bindToValue()) do not have metadata directly associated. Those bindings can be accessed via Container.getAllBindings().

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);

getClassMetadata(type)

Provides class metadata associated to that type.

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);
- - +
Version: 0.3.1

Metadata provider

The MetadataProvider class is provided to easily extract metadata of a given type

getBindingMetadata(type)

Provides binding metadata associated to that type.

note

Values (bound by Container.bindToValue()) do not have metadata directly associated. Those bindings can be accessed via Container.getAllBindings().

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);

getClassMetadata(type)

Provides class metadata associated to that type.

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);
+ + \ No newline at end of file diff --git a/docs/0.3.1/concepts/binding/index.html b/docs/0.3.1/concepts/binding/index.html index 2ec4a41e1..952b52287 100644 --- a/docs/0.3.1/concepts/binding/index.html +++ b/docs/0.3.1/concepts/binding/index.html @@ -4,13 +4,13 @@ Binding | IoCuak - - + +
Version: 0.3.1

Binding

Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:

PropertyDescriptionType
idService id. Any attempt to create a service matching this service id is going to use this binding.number | string | symbol
tagsTags associated. Any attempt to create a service matching one of these tags is going to use this binding.number | string | symbol

There are two kinds of bindings:

TypeBinding

A class based binding. A type binding relies on a class constructor to instantiate the service.

PropertyDescriptionType
scopeBinding scope to determine wheter or not a service should be reused.BindingScope
typeClass to be used to call its constructorNewable

Binding scope

When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:

  • Transient: An instance of this service is never reused.
  • Request: An instance of this service is reused if service is requested under the same Container.get request.

Example: Given the services A, B and C, both A and B services depends on C. In addition, A services depends on B. If C is injected on request scope, a request to the A service results in the same C instance being injected to both A and B services.

  • Singleton: An instance of this service is always reused.
- - + + \ No newline at end of file diff --git a/docs/0.3.1/concepts/class-metadata/index.html b/docs/0.3.1/concepts/class-metadata/index.html index 5e8f52521..4adbf12d7 100644 --- a/docs/0.3.1/concepts/class-metadata/index.html +++ b/docs/0.3.1/concepts/class-metadata/index.html @@ -4,13 +4,13 @@ Class metadata | IoCuak - - + +
Version: 0.3.1

Class metadata

Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.

PropertyDescriptionType
constructorArgumentsConstructor arguments metadataClassElementMetadata
propertiesProperties metadata.Map<string | symbol, ClassElementMetadata>

ClassElementMetadata

Class element metadata can be of two different kinds:

ClassElementServiceIdMetadata

Represents a service dependency

PropertyDescriptionType
typeClass element metadata typeClassElementMetadatApi.serviceId
valueService id associated to the elementnumber | string | symbol

ClassElementTagMetadataApi

Represents services associated to a tag dependency

PropertyDescriptionType
typeClass element metadata typeClassElementMetadatApi.tag
valueTag associated to the elementnumber | string | symbol
- - + + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/container-modules/creating-modules/index.html b/docs/0.3.1/tutorial/container-modules/creating-modules/index.html index 8ff18e02a..aaf0b399d 100644 --- a/docs/0.3.1/tutorial/container-modules/creating-modules/index.html +++ b/docs/0.3.1/tutorial/container-modules/creating-modules/index.html @@ -4,13 +4,13 @@ Creating modules | IoCuak - - + +
-
Version: 0.3.1

Creating modules

A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

This way different service bindings can be grouped.

- - +
Version: 0.3.1

Creating modules

A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

This way different service bindings can be grouped.

+ + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/container-modules/introduction/index.html b/docs/0.3.1/tutorial/container-modules/introduction/index.html index 2b8931dbe..de7780b40 100644 --- a/docs/0.3.1/tutorial/container-modules/introduction/index.html +++ b/docs/0.3.1/tutorial/container-modules/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.3.1

Introduction

Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.

- - + + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata/index.html b/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata/index.html index ce8769672..33e8f00cb 100644 --- a/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata/index.html +++ b/docs/0.3.1/tutorial/container-modules/loading-modules-from-metadata/index.html @@ -4,13 +4,13 @@ Loading modules from metadata | IoCuak - - + +
-
Version: 0.3.1

Loading modules from metadata

Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.

Container module metadata is provided for those purposes.

Container Module Factory Metatada

This approach uses a factory to create the module. This metadata can receive an injects property to receive injected dependencies.

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module.

Container Module Class Metadata

This approach receives a class which is used to create the module.

import {
Container,
ContainerModule,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

@injectable()
class MyContainerModule implements ContainerModule {

constructor(
@inject(Dependency)
public readonly someServiceDependency: Dependency,
) {}

public load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
imports: [someContainerModuleMetadataDependency],
module: MyContainerModule,
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports.

This approach is highly inspired on NestJs modules.

- - +
Version: 0.3.1

Loading modules from metadata

Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.

Container module metadata is provided for those purposes.

Container Module Factory Metatada

This approach uses a factory to create the module. This metadata can receive an injects property to receive injected dependencies.

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module.

Container Module Class Metadata

This approach receives a class which is used to create the module.

import {
Container,
ContainerModule,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

@injectable()
class MyContainerModule implements ContainerModule {

constructor(
@inject(Dependency)
public readonly someServiceDependency: Dependency,
) {}

public load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
imports: [someContainerModuleMetadataDependency],
module: MyContainerModule,
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports.

This approach is highly inspired on NestJs modules.

+ + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/decorating-classes/inject-decorator/index.html b/docs/0.3.1/tutorial/decorating-classes/inject-decorator/index.html index 678877228..f8d73de85 100644 --- a/docs/0.3.1/tutorial/decorating-classes/inject-decorator/index.html +++ b/docs/0.3.1/tutorial/decorating-classes/inject-decorator/index.html @@ -4,13 +4,13 @@ The inject decorator | IoCuak - - + +
-
Version: 0.3.1

The inject decorator

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

This way the IoC container knows the property foo should be injected with the service associated to dummyFooServiceId.

- - +
Version: 0.3.1

The inject decorator

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

This way the IoC container knows the property foo should be injected with the service associated to dummyFooServiceId.

+ + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/decorating-classes/injectable-decorator/index.html b/docs/0.3.1/tutorial/decorating-classes/injectable-decorator/index.html index d654dec3c..40e89f136 100644 --- a/docs/0.3.1/tutorial/decorating-classes/injectable-decorator/index.html +++ b/docs/0.3.1/tutorial/decorating-classes/injectable-decorator/index.html @@ -4,13 +4,13 @@ The injectable decorator | IoCuak - - + +
-
Version: 0.3.1

The injectable decorator

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const barSymbol: symbol = Symbol();

/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info

Consider binding docs as reference.

- - +
Version: 0.3.1

The injectable decorator

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const barSymbol: symbol = Symbol();

/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info

Consider binding docs as reference.

+ + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/introduction/index.html b/docs/0.3.1/tutorial/introduction/index.html index 4c0b3a238..7c260a70f 100644 --- a/docs/0.3.1/tutorial/introduction/index.html +++ b/docs/0.3.1/tutorial/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.3.1

Introduction

Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.

This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm.

- - + + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/the-container-object/binding-a-service/index.html b/docs/0.3.1/tutorial/the-container-object/binding-a-service/index.html index 20891f1ac..308494fc9 100644 --- a/docs/0.3.1/tutorial/the-container-object/binding-a-service/index.html +++ b/docs/0.3.1/tutorial/the-container-object/binding-a-service/index.html @@ -4,13 +4,13 @@ Binding a service | IoCuak - - + +
-
Version: 0.3.1

Binding a service

Services can be easily bound to the container calling it directly.

import { Container } from '@cuaklabs/iocuak';

class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

Services can also be bound through a ContainerModule:

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);
- - +
Version: 0.3.1

Binding a service

Services can be easily bound to the container calling it directly.

import { Container } from '@cuaklabs/iocuak';

class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

Services can also be bound through a ContainerModule:

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);
+ + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/the-container-object/creating-instances/index.html b/docs/0.3.1/tutorial/the-container-object/creating-instances/index.html index b098cb81b..11f602e79 100644 --- a/docs/0.3.1/tutorial/the-container-object/creating-instances/index.html +++ b/docs/0.3.1/tutorial/the-container-object/creating-instances/index.html @@ -4,13 +4,13 @@ Creating instances | IoCuak - - + +
-
Version: 0.3.1

Creating instances

Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated

import { Container, injectable } from '@cuaklabs/iocuak';

@injectable()
class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

const dummyInstance: Dummy = container.get(Dummy);
- - +
Version: 0.3.1

Creating instances

Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated

import { Container, injectable } from '@cuaklabs/iocuak';

@injectable()
class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

const dummyInstance: Dummy = container.get(Dummy);
+ + \ No newline at end of file diff --git a/docs/0.3.1/tutorial/the-container-object/introduction/index.html b/docs/0.3.1/tutorial/the-container-object/introduction/index.html index c7c79c360..550c99cca 100644 --- a/docs/0.3.1/tutorial/the-container-object/introduction/index.html +++ b/docs/0.3.1/tutorial/the-container-object/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.3.1

Introduction

The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.

- - + + \ No newline at end of file diff --git a/docs/0.4.0/api/container/index.html b/docs/0.4.0/api/container/index.html index 7795a1b0e..f32ed2de6 100644 --- a/docs/0.4.0/api/container/index.html +++ b/docs/0.4.0/api/container/index.html @@ -4,13 +4,13 @@ Container API | IoCuak - - + +
-
Version: 0.4.0

Container API

bind(type, options)

Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:

PropertyDescriptionType
scopeBinding scope to applyBindingScope

bindToValue(options)

Binds a value. The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
valueValue to bindunknown
note

Values are always bound in singleton scope

get(serviceId)

Returns a service by its id. If necessary, the service is instantiated.

Consider the binding page as reference to know more about instance details.

getByTag(tag)

Returns all the services associated to a tag. If necessary, services are instantiated.

getAllBindinds()

Returns all the bindings registered in the container.

load(containerModule)

Loads a container module.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

loadMetadata(containerModuleMetadata)

Loads container module metadata

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

unbind(serviceId)

Unbinds a bound service by its id.

- - +
Version: 0.4.0

Container API

bind(type, options)

Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:

PropertyDescriptionType
scopeBinding scope to applyBindingScope

bindToValue(options)

Binds a value. The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
valueValue to bindunknown
note

Values are always bound in singleton scope

get(serviceId)

Returns a service by its id. If necessary, the service is instantiated.

Consider the binding page as reference to know more about instance details.

getByTag(tag)

Returns all the services associated to a tag. If necessary, services are instantiated.

getAllBindinds()

Returns all the bindings registered in the container.

load(containerModule)

Loads a container module.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

loadMetadata(containerModuleMetadata)

Loads container module metadata

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

unbind(serviceId)

Unbinds a bound service by its id.

+ + \ No newline at end of file diff --git a/docs/0.4.0/api/injection/inject-decorator/index.html b/docs/0.4.0/api/injection/inject-decorator/index.html index cb8bd1256..fd5be5b43 100644 --- a/docs/0.4.0/api/injection/inject-decorator/index.html +++ b/docs/0.4.0/api/injection/inject-decorator/index.html @@ -4,13 +4,13 @@ inject | IoCuak - - + +
-
Version: 0.4.0

inject

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

- - +
Version: 0.4.0

inject

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

+ + \ No newline at end of file diff --git a/docs/0.4.0/api/injection/inject-tag-decorator/index.html b/docs/0.4.0/api/injection/inject-tag-decorator/index.html index ef4f5434a..7c847090c 100644 --- a/docs/0.4.0/api/injection/inject-tag-decorator/index.html +++ b/docs/0.4.0/api/injection/inject-tag-decorator/index.html @@ -4,13 +4,13 @@ injectTag | IoCuak - - + +
-
Version: 0.4.0

injectTag

This decorator targets a property or a parameter and provides the services associated to that tag.

import { injectTag } from '@cuaklabs/iocuak';

import { dummyTag } from 'some/path';

class Dummy {
@injectTag(dummyTag)
public foo: unknown[];
}

Troperty foo is injected with the services associated to the dummyTag tag.

- - +
Version: 0.4.0

injectTag

This decorator targets a property or a parameter and provides the services associated to that tag.

import { injectTag } from '@cuaklabs/iocuak';

import { dummyTag } from 'some/path';

class Dummy {
@injectTag(dummyTag)
public foo: unknown[];
}

Troperty foo is injected with the services associated to the dummyTag tag.

+ + \ No newline at end of file diff --git a/docs/0.4.0/api/injection/injectFromBase-decorator/index.html b/docs/0.4.0/api/injection/injectFromBase-decorator/index.html index 4ca3ab46f..6d3a31bf4 100644 --- a/docs/0.4.0/api/injection/injectFromBase-decorator/index.html +++ b/docs/0.4.0/api/injection/injectFromBase-decorator/index.html @@ -4,13 +4,13 @@ injectFromBase | IoCuak - - + +
-
Version: 0.4.0

injectFromBase

@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.

import { inject, injectable } from '@cuaklabs/iocuak';

import { dummyFooServiceId, dummyBarServiceId } from 'some/path';

@injectable()
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

/*
* @injectFromBase() allows DummyChild to have a foo property with
* the same metadata as if decorated with @inject(dummyFooServiceId
*/

@injectable()
@injectFromBase()
class DummyChild extends Dummy {
@inject(dummyBarServiceId)
public bar: unknown;
}

- - +
Version: 0.4.0

injectFromBase

@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.

import { inject, injectable } from '@cuaklabs/iocuak';

import { dummyFooServiceId, dummyBarServiceId } from 'some/path';

@injectable()
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

/*
* @injectFromBase() allows DummyChild to have a foo property with
* the same metadata as if decorated with @inject(dummyFooServiceId
*/

@injectable()
@injectFromBase()
class DummyChild extends Dummy {
@inject(dummyBarServiceId)
public bar: unknown;
}

+ + \ No newline at end of file diff --git a/docs/0.4.0/api/injection/injectable-decorator/index.html b/docs/0.4.0/api/injection/injectable-decorator/index.html index 6abbf218e..39527d30e 100644 --- a/docs/0.4.0/api/injection/injectable-decorator/index.html +++ b/docs/0.4.0/api/injection/injectable-decorator/index.html @@ -4,13 +4,13 @@ injectable | IoCuak - - + +
-
Version: 0.4.0

injectable

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}

The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
scopeBinding scopeBindingScope
info

Consider binding docs as reference.

- - +
Version: 0.4.0

injectable

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}

The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
scopeBinding scopeBindingScope
info

Consider binding docs as reference.

+ + \ No newline at end of file diff --git a/docs/0.4.0/api/metadata/introduction/index.html b/docs/0.4.0/api/metadata/introduction/index.html index 366aef90c..b3e7db4df 100644 --- a/docs/0.4.0/api/metadata/introduction/index.html +++ b/docs/0.4.0/api/metadata/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.4.0

Introduction

This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.

- - + + \ No newline at end of file diff --git a/docs/0.4.0/api/metadata/metadata-provider/index.html b/docs/0.4.0/api/metadata/metadata-provider/index.html index 40ec2a6c2..a0b13df0a 100644 --- a/docs/0.4.0/api/metadata/metadata-provider/index.html +++ b/docs/0.4.0/api/metadata/metadata-provider/index.html @@ -4,13 +4,13 @@ Metadata provider | IoCuak - - + +
-
Version: 0.4.0

Metadata provider

The MetadataProvider class is provided to easily extract metadata of a given type

getBindingMetadata(type)

Provides binding metadata associated to that type.

note

Values (bound by Container.bindToValue()) do not have metadata directly associated. Those bindings can be accessed via Container.getAllBindings().

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);

getClassMetadata(type)

Provides class metadata associated to that type.

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);
- - +
Version: 0.4.0

Metadata provider

The MetadataProvider class is provided to easily extract metadata of a given type

getBindingMetadata(type)

Provides binding metadata associated to that type.

note

Values (bound by Container.bindToValue()) do not have metadata directly associated. Those bindings can be accessed via Container.getAllBindings().

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);

getClassMetadata(type)

Provides class metadata associated to that type.

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);
+ + \ No newline at end of file diff --git a/docs/0.4.0/concepts/binding/index.html b/docs/0.4.0/concepts/binding/index.html index 0eef0fd21..25c236882 100644 --- a/docs/0.4.0/concepts/binding/index.html +++ b/docs/0.4.0/concepts/binding/index.html @@ -4,13 +4,13 @@ Binding | IoCuak - - + +
Version: 0.4.0

Binding

Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:

PropertyDescriptionType
idService id. Any attempt to create a service matching this service id is going to use this binding.number | string | symbol
tagsTags associated. Any attempt to create a service matching one of these tags is going to use this binding.number | string | symbol

There are two kinds of bindings:

TypeBinding

A class based binding. A type binding relies on a class constructor to instantiate the service.

PropertyDescriptionType
scopeBinding scope to determine wheter or not a service should be reused.BindingScope
typeClass to be used to call its constructorNewable

Binding scope

When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:

  • Transient: An instance of this service is never reused.
  • Request: An instance of this service is reused if service is requested under the same Container.get request.

Example: Given the services A, B and C, both A and B services depends on C. In addition, A services depends on B. If C is injected on request scope, a request to the A service results in the same C instance being injected to both A and B services.

  • Singleton: An instance of this service is always reused.
- - + + \ No newline at end of file diff --git a/docs/0.4.0/concepts/class-metadata/index.html b/docs/0.4.0/concepts/class-metadata/index.html index a4d3dc21a..9f905dc9b 100644 --- a/docs/0.4.0/concepts/class-metadata/index.html +++ b/docs/0.4.0/concepts/class-metadata/index.html @@ -4,13 +4,13 @@ Class metadata | IoCuak - - + +
Version: 0.4.0

Class metadata

Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.

PropertyDescriptionType
constructorArgumentsConstructor arguments metadataClassElementMetadata
propertiesProperties metadata.Map<string | symbol, ClassElementMetadata>

ClassElementMetadata

Class element metadata can be of two different kinds:

ClassElementServiceIdMetadata

Represents a service dependency

PropertyDescriptionType
typeClass element metadata typeClassElementMetadatApi.serviceId
valueService id associated to the elementnumber | string | symbol

ClassElementTagMetadataApi

Represents services associated to a tag dependency

PropertyDescriptionType
typeClass element metadata typeClassElementMetadatApi.tag
valueTag associated to the elementnumber | string | symbol
- - + + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/container-modules/creating-modules/index.html b/docs/0.4.0/tutorial/container-modules/creating-modules/index.html index 4f56c4f0b..c003b3766 100644 --- a/docs/0.4.0/tutorial/container-modules/creating-modules/index.html +++ b/docs/0.4.0/tutorial/container-modules/creating-modules/index.html @@ -4,13 +4,13 @@ Creating modules | IoCuak - - + +
-
Version: 0.4.0

Creating modules

A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

This way different service bindings can be grouped.

- - +
Version: 0.4.0

Creating modules

A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

This way different service bindings can be grouped.

+ + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/container-modules/introduction/index.html b/docs/0.4.0/tutorial/container-modules/introduction/index.html index 498db9d6f..2540ea9f4 100644 --- a/docs/0.4.0/tutorial/container-modules/introduction/index.html +++ b/docs/0.4.0/tutorial/container-modules/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.4.0

Introduction

Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.

- - + + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata/index.html b/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata/index.html index ea1e4e805..473fb4460 100644 --- a/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata/index.html +++ b/docs/0.4.0/tutorial/container-modules/loading-modules-from-metadata/index.html @@ -4,13 +4,13 @@ Loading modules from metadata | IoCuak - - + +
-
Version: 0.4.0

Loading modules from metadata

Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.

Container module metadata is provided for those purposes.

Container Module Factory Metatada

This approach uses a factory to create the module. This metadata can receive an injects property to receive injected dependencies.

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module.

Container Module Class Metadata

This approach receives a class which is used to create the module.

import {
Container,
ContainerModule,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

@injectable()
class MyContainerModule implements ContainerModule {

constructor(
@inject(Dependency)
public readonly someServiceDependency: Dependency,
) {}

public load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
imports: [someContainerModuleMetadataDependency],
module: MyContainerModule,
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports.

This approach is highly inspired on NestJs modules.

- - +
Version: 0.4.0

Loading modules from metadata

Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.

Container module metadata is provided for those purposes.

Container Module Factory Metatada

This approach uses a factory to create the module. This metadata can receive an injects property to receive injected dependencies.

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module.

Container Module Class Metadata

This approach receives a class which is used to create the module.

import {
Container,
ContainerModule,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

@injectable()
class MyContainerModule implements ContainerModule {

constructor(
@inject(Dependency)
public readonly someServiceDependency: Dependency,
) {}

public load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
imports: [someContainerModuleMetadataDependency],
module: MyContainerModule,
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports.

This approach is highly inspired on NestJs modules.

+ + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/decorating-classes/inject-decorator/index.html b/docs/0.4.0/tutorial/decorating-classes/inject-decorator/index.html index 78c5fbd41..dfb744b38 100644 --- a/docs/0.4.0/tutorial/decorating-classes/inject-decorator/index.html +++ b/docs/0.4.0/tutorial/decorating-classes/inject-decorator/index.html @@ -4,13 +4,13 @@ The inject decorator | IoCuak - - + +
-
Version: 0.4.0

The inject decorator

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

This way the IoC container knows the property foo should be injected with the service associated to dummyFooServiceId.

- - +
Version: 0.4.0

The inject decorator

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

This way the IoC container knows the property foo should be injected with the service associated to dummyFooServiceId.

+ + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/decorating-classes/injectable-decorator/index.html b/docs/0.4.0/tutorial/decorating-classes/injectable-decorator/index.html index 918ffe8b7..7820d1c96 100644 --- a/docs/0.4.0/tutorial/decorating-classes/injectable-decorator/index.html +++ b/docs/0.4.0/tutorial/decorating-classes/injectable-decorator/index.html @@ -4,13 +4,13 @@ The injectable decorator | IoCuak - - + +
-
Version: 0.4.0

The injectable decorator

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const barSymbol: symbol = Symbol();

/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info

Consider binding docs as reference.

- - +
Version: 0.4.0

The injectable decorator

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const barSymbol: symbol = Symbol();

/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info

Consider binding docs as reference.

+ + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/introduction/index.html b/docs/0.4.0/tutorial/introduction/index.html index f0521aea5..f5fd4a743 100644 --- a/docs/0.4.0/tutorial/introduction/index.html +++ b/docs/0.4.0/tutorial/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.4.0

Introduction

Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.

This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm.

- - + + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/the-container-object/binding-a-service/index.html b/docs/0.4.0/tutorial/the-container-object/binding-a-service/index.html index b0fb133e9..766fb64e5 100644 --- a/docs/0.4.0/tutorial/the-container-object/binding-a-service/index.html +++ b/docs/0.4.0/tutorial/the-container-object/binding-a-service/index.html @@ -4,13 +4,13 @@ Binding a service | IoCuak - - + +
-
Version: 0.4.0

Binding a service

Services can be easily bound to the container calling it directly.

import { Container } from '@cuaklabs/iocuak';

class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

Services can also be bound through a ContainerModule:

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);
- - +
Version: 0.4.0

Binding a service

Services can be easily bound to the container calling it directly.

import { Container } from '@cuaklabs/iocuak';

class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

Services can also be bound through a ContainerModule:

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);
+ + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/the-container-object/creating-instances/index.html b/docs/0.4.0/tutorial/the-container-object/creating-instances/index.html index b6acd16ae..e8a3762fe 100644 --- a/docs/0.4.0/tutorial/the-container-object/creating-instances/index.html +++ b/docs/0.4.0/tutorial/the-container-object/creating-instances/index.html @@ -4,13 +4,13 @@ Creating instances | IoCuak - - + +
-
Version: 0.4.0

Creating instances

Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated

import { Container, injectable } from '@cuaklabs/iocuak';

@injectable()
class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

const dummyInstance: Dummy = container.get(Dummy);
- - +
Version: 0.4.0

Creating instances

Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated

import { Container, injectable } from '@cuaklabs/iocuak';

@injectable()
class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

const dummyInstance: Dummy = container.get(Dummy);
+ + \ No newline at end of file diff --git a/docs/0.4.0/tutorial/the-container-object/introduction/index.html b/docs/0.4.0/tutorial/the-container-object/introduction/index.html index df647384b..49f0eb4b5 100644 --- a/docs/0.4.0/tutorial/the-container-object/introduction/index.html +++ b/docs/0.4.0/tutorial/the-container-object/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.4.0

Introduction

The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.

- - + + \ No newline at end of file diff --git a/docs/api/container/index.html b/docs/api/container/index.html index bbc51a123..b2fb2f787 100644 --- a/docs/api/container/index.html +++ b/docs/api/container/index.html @@ -4,13 +4,13 @@ Container API | IoCuak - - + +
-
Version: 0.5.0

Container API

bind(type, options)

Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:

PropertyDescriptionType
scopeBinding scope to applyBindingScope

bindToValue(options)

Binds a value. The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
valueValue to bindunknown
note

Values are always bound in singleton scope

get(serviceId)

Returns a service by its id. If necessary, the service is instantiated.

Consider the binding page as reference to know more about instance details.

getByTag(tag)

Returns all the services associated to a tag. If necessary, services are instantiated.

getAllBindinds()

Returns all the bindings registered in the container.

load(containerModule)

Loads a container module.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

loadMetadata(containerModuleMetadata)

Loads container module metadata

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

unbind(serviceId)

Unbinds a bound service by its id.

- - +
Version: 0.5.0

Container API

bind(type, options)

Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:

PropertyDescriptionType
scopeBinding scope to applyBindingScope

bindToValue(options)

Binds a value. The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
valueValue to bindunknown
note

Values are always bound in singleton scope

get(serviceId)

Returns a service by its id. If necessary, the service is instantiated.

Consider the binding page as reference to know more about instance details.

getByTag(tag)

Returns all the services associated to a tag. If necessary, services are instantiated.

getAllBindinds()

Returns all the bindings registered in the container.

load(containerModule)

Loads a container module.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

loadMetadata(containerModuleMetadata)

Loads container module metadata

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

unbind(serviceId)

Unbinds a bound service by its id.

+ + \ No newline at end of file diff --git a/docs/api/injection/inject-decorator/index.html b/docs/api/injection/inject-decorator/index.html index 8cfed58a2..9cc60a3e9 100644 --- a/docs/api/injection/inject-decorator/index.html +++ b/docs/api/injection/inject-decorator/index.html @@ -4,13 +4,13 @@ inject | IoCuak - - + +
-
Version: 0.5.0

inject

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

- - +
Version: 0.5.0

inject

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

+ + \ No newline at end of file diff --git a/docs/api/injection/inject-tag-decorator/index.html b/docs/api/injection/inject-tag-decorator/index.html index 77410e4cd..7d461e4ac 100644 --- a/docs/api/injection/inject-tag-decorator/index.html +++ b/docs/api/injection/inject-tag-decorator/index.html @@ -4,13 +4,13 @@ injectTag | IoCuak - - + +
-
Version: 0.5.0

injectTag

This decorator targets a property or a parameter and provides the services associated to that tag.

import { injectTag } from '@cuaklabs/iocuak';

import { dummyTag } from 'some/path';

class Dummy {
@injectTag(dummyTag)
public foo: unknown[];
}

Troperty foo is injected with the services associated to the dummyTag tag.

- - +
Version: 0.5.0

injectTag

This decorator targets a property or a parameter and provides the services associated to that tag.

import { injectTag } from '@cuaklabs/iocuak';

import { dummyTag } from 'some/path';

class Dummy {
@injectTag(dummyTag)
public foo: unknown[];
}

Troperty foo is injected with the services associated to the dummyTag tag.

+ + \ No newline at end of file diff --git a/docs/api/injection/injectFromBase-decorator/index.html b/docs/api/injection/injectFromBase-decorator/index.html index a2405c926..d6e5e69e3 100644 --- a/docs/api/injection/injectFromBase-decorator/index.html +++ b/docs/api/injection/injectFromBase-decorator/index.html @@ -4,13 +4,13 @@ injectFromBase | IoCuak - - + +
-
Version: 0.5.0

injectFromBase

@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.

import { inject, injectable } from '@cuaklabs/iocuak';

import { dummyFooServiceId, dummyBarServiceId } from 'some/path';

@injectable()
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

/*
* @injectFromBase() allows DummyChild to have a foo property with
* the same metadata as if decorated with @inject(dummyFooServiceId
*/

@injectable()
@injectFromBase()
class DummyChild extends Dummy {
@inject(dummyBarServiceId)
public bar: unknown;
}

- - +
Version: 0.5.0

injectFromBase

@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.

import { inject, injectable } from '@cuaklabs/iocuak';

import { dummyFooServiceId, dummyBarServiceId } from 'some/path';

@injectable()
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

/*
* @injectFromBase() allows DummyChild to have a foo property with
* the same metadata as if decorated with @inject(dummyFooServiceId
*/

@injectable()
@injectFromBase()
class DummyChild extends Dummy {
@inject(dummyBarServiceId)
public bar: unknown;
}

+ + \ No newline at end of file diff --git a/docs/api/injection/injectable-decorator/index.html b/docs/api/injection/injectable-decorator/index.html index 8ebff7496..12a5cf5f5 100644 --- a/docs/api/injection/injectable-decorator/index.html +++ b/docs/api/injection/injectable-decorator/index.html @@ -4,13 +4,13 @@ injectable | IoCuak - - + +
-
Version: 0.5.0

injectable

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}

The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
scopeBinding scopeBindingScope
info

Consider binding docs as reference.

- - +
Version: 0.5.0

injectable

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}

The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
scopeBinding scopeBindingScope
info

Consider binding docs as reference.

+ + \ No newline at end of file diff --git a/docs/api/metadata/introduction/index.html b/docs/api/metadata/introduction/index.html index 5a86b1dfb..172fea0b6 100644 --- a/docs/api/metadata/introduction/index.html +++ b/docs/api/metadata/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.5.0

Introduction

This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.

- - + + \ No newline at end of file diff --git a/docs/api/metadata/metadata-provider/index.html b/docs/api/metadata/metadata-provider/index.html index 79f3f5281..1e0920920 100644 --- a/docs/api/metadata/metadata-provider/index.html +++ b/docs/api/metadata/metadata-provider/index.html @@ -4,13 +4,13 @@ Metadata provider | IoCuak - - + +
-
Version: 0.5.0

Metadata provider

The MetadataProvider class is provided to easily extract metadata of a given type

getBindingMetadata(type)

Provides binding metadata associated to that type.

note

Values (bound by Container.bindToValue()) do not have metadata directly associated. Those bindings can be accessed via Container.getAllBindings().

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);

getClassMetadata(type)

Provides class metadata associated to that type.

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);
- - +
Version: 0.5.0

Metadata provider

The MetadataProvider class is provided to easily extract metadata of a given type

getBindingMetadata(type)

Provides binding metadata associated to that type.

note

Values (bound by Container.bindToValue()) do not have metadata directly associated. Those bindings can be accessed via Container.getAllBindings().

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);

getClassMetadata(type)

Provides class metadata associated to that type.

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);
+ + \ No newline at end of file diff --git a/docs/concepts/binding/index.html b/docs/concepts/binding/index.html index 2a6fb418c..231c8b137 100644 --- a/docs/concepts/binding/index.html +++ b/docs/concepts/binding/index.html @@ -4,13 +4,13 @@ Binding | IoCuak - - + +
Version: 0.5.0

Binding

Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:

PropertyDescriptionType
idService id. Any attempt to create a service matching this service id is going to use this binding.number | string | symbol
tagsTags associated. Any attempt to create a service matching one of these tags is going to use this binding.number | string | symbol

There are two kinds of bindings:

TypeBinding

A class based binding. A type binding relies on a class constructor to instantiate the service.

PropertyDescriptionType
scopeBinding scope to determine wheter or not a service should be reused.BindingScope
typeClass to be used to call its constructorNewable

Binding scope

When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:

  • Transient: An instance of this service is never reused.
  • Request: An instance of this service is reused if service is requested under the same Container.get request.

Example: Given the services A, B and C, both A and B services depends on C. In addition, A services depends on B. If C is injected on request scope, a request to the A service results in the same C instance being injected to both A and B services.

  • Singleton: An instance of this service is always reused.
- - + + \ No newline at end of file diff --git a/docs/concepts/class-metadata/index.html b/docs/concepts/class-metadata/index.html index 3c4848517..10a3559df 100644 --- a/docs/concepts/class-metadata/index.html +++ b/docs/concepts/class-metadata/index.html @@ -4,13 +4,13 @@ Class metadata | IoCuak - - + +
Version: 0.5.0

Class metadata

Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.

PropertyDescriptionType
constructorArgumentsConstructor arguments metadataClassElementMetadata
propertiesProperties metadata.Map<string | symbol, ClassElementMetadata>

ClassElementMetadata

Class element metadata can be of two different kinds:

ClassElementServiceIdMetadata

Represents a service dependency

PropertyDescriptionType
typeClass element metadata typeClassElementMetadatApi.serviceId
valueService id associated to the elementnumber | string | symbol

ClassElementTagMetadataApi

Represents services associated to a tag dependency

PropertyDescriptionType
typeClass element metadata typeClassElementMetadatApi.tag
valueTag associated to the elementnumber | string | symbol
- - + + \ No newline at end of file diff --git a/docs/concepts/container-module-metadata/index.html b/docs/concepts/container-module-metadata/index.html index 0bc9b5748..88e9e6789 100644 --- a/docs/concepts/container-module-metadata/index.html +++ b/docs/concepts/container-module-metadata/index.html @@ -4,13 +4,13 @@ Container module metadata | IoCuak - - + +
Version: 0.5.0

Container module metadata

Represents configuration to build and load a container module.

ContainerModuleMetadata can be of four different different kinds:

ContainerModuleFactoryMetadata

Represents a container module to be built using a factory.

PropertyDescriptionType
idContainerModuleMetadata idContainerModuleMetadataId
importsDependencies required to build the moduleContainerModuleMetadata[]
factoryFunction to build the moduleFunction
injectsServices to be passed as argumentsServiceId[]

ContainerModuleClassMetadata

Represents a container module to be built using a decorated ContainerModule class.

PropertyDescriptionType
idContainerModuleMetadata idContainerModuleMetadataId
importsDependencies required to build the moduleContainerModuleMetadata[]
moduleContainerModuleMetadaClass to be loadedNewable<ContainerModuleMetadata>

ContainerModule

Represents a ContainerModule instance to be loaded. Equivalent to a ContainerModuleFactoryMetadata with a factory with no arguments returning the module.

Newable<ContainerModule>

Represents a ContainerModule class to be instantiated in order to load a container module. Equivalent to a ContainerModuleClassMetadata with no the class as module.

- - + + \ No newline at end of file diff --git a/docs/next/api/container/index.html b/docs/next/api/container/index.html index 8a23d69e6..e25cf2c0e 100644 --- a/docs/next/api/container/index.html +++ b/docs/next/api/container/index.html @@ -4,13 +4,13 @@ Container API | IoCuak - - + +
-
Version: Next

Container API

bind(type, options)

Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:

PropertyDescriptionType
scopeBinding scope to applyBindingScope

bindToValue(options)

Binds a value. The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
valueValue to bindunknown
note

Values are always bound in singleton scope

get(serviceId)

Returns a service by its id. If necessary, the service is instantiated.

Consider the binding page as reference to know more about instance details.

getByTag(tag)

Returns all the services associated to a tag. If necessary, services are instantiated.

getAllBindinds()

Returns all the bindings registered in the container.

load(containerModule)

Loads a container module.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

loadMetadata(containerModuleMetadata)

Loads container module metadata

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

unbind(serviceId)

Unbinds a bound service by its id.

- - +
Version: Next

Container API

bind(type, options)

Binds a type. The container takes any binding associated to that type and process it. Optionally, it receives an options parameter:

PropertyDescriptionType
scopeBinding scope to applyBindingScope

bindToValue(options)

Binds a value. The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
valueValue to bindunknown
note

Values are always bound in singleton scope

get(serviceId)

Returns a service by its id. If necessary, the service is instantiated.

Consider the binding page as reference to know more about instance details.

getByTag(tag)

Returns all the services associated to a tag. If necessary, services are instantiated.

getAllBindinds()

Returns all the bindings registered in the container.

load(containerModule)

Loads a container module.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

loadMetadata(containerModuleMetadata)

Loads container module metadata

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

unbind(serviceId)

Unbinds a bound service by its id.

+ + \ No newline at end of file diff --git a/docs/next/api/injection/inject-decorator/index.html b/docs/next/api/injection/inject-decorator/index.html index 8cabf13c5..a9a4839d3 100644 --- a/docs/next/api/injection/inject-decorator/index.html +++ b/docs/next/api/injection/inject-decorator/index.html @@ -4,13 +4,13 @@ inject | IoCuak - - + +
-
Version: Next

inject

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

- - +
Version: Next

inject

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

+ + \ No newline at end of file diff --git a/docs/next/api/injection/inject-tag-decorator/index.html b/docs/next/api/injection/inject-tag-decorator/index.html index 1803f83ea..066f8c7dc 100644 --- a/docs/next/api/injection/inject-tag-decorator/index.html +++ b/docs/next/api/injection/inject-tag-decorator/index.html @@ -4,13 +4,13 @@ injectTag | IoCuak - - + +
-
Version: Next

injectTag

This decorator targets a property or a parameter and provides the services associated to that tag.

import { injectTag } from '@cuaklabs/iocuak';

import { dummyTag } from 'some/path';

class Dummy {
@injectTag(dummyTag)
public foo: unknown[];
}

Troperty foo is injected with the services associated to the dummyTag tag.

- - +
Version: Next

injectTag

This decorator targets a property or a parameter and provides the services associated to that tag.

import { injectTag } from '@cuaklabs/iocuak';

import { dummyTag } from 'some/path';

class Dummy {
@injectTag(dummyTag)
public foo: unknown[];
}

Troperty foo is injected with the services associated to the dummyTag tag.

+ + \ No newline at end of file diff --git a/docs/next/api/injection/injectFromBase-decorator/index.html b/docs/next/api/injection/injectFromBase-decorator/index.html index 2dc07392d..1856b5db8 100644 --- a/docs/next/api/injection/injectFromBase-decorator/index.html +++ b/docs/next/api/injection/injectFromBase-decorator/index.html @@ -4,13 +4,13 @@ injectFromBase | IoCuak - - + +
-
Version: Next

injectFromBase

@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.

import { inject, injectable } from '@cuaklabs/iocuak';

import { dummyFooServiceId, dummyBarServiceId } from 'some/path';

@injectable()
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

/*
* @injectFromBase() allows DummyChild to have a foo property with
* the same metadata as if decorated with @inject(dummyFooServiceId
*/

@injectable()
@injectFromBase()
class DummyChild extends Dummy {
@inject(dummyBarServiceId)
public bar: unknown;
}

- - +
Version: Next

injectFromBase

@injectabe and @inject metadata are not propagated to child classes. @injectFromBase decorator exists for that purpose.

import { inject, injectable } from '@cuaklabs/iocuak';

import { dummyFooServiceId, dummyBarServiceId } from 'some/path';

@injectable()
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

/*
* @injectFromBase() allows DummyChild to have a foo property with
* the same metadata as if decorated with @inject(dummyFooServiceId
*/

@injectable()
@injectFromBase()
class DummyChild extends Dummy {
@inject(dummyBarServiceId)
public bar: unknown;
}

+ + \ No newline at end of file diff --git a/docs/next/api/injection/injectable-decorator/index.html b/docs/next/api/injection/injectable-decorator/index.html index 4721123df..291562af2 100644 --- a/docs/next/api/injection/injectable-decorator/index.html +++ b/docs/next/api/injection/injectable-decorator/index.html @@ -4,13 +4,13 @@ injectable | IoCuak - - + +
-
Version: Next

injectable

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}

The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
scopeBinding scopeBindingScope
info

Consider binding docs as reference.

- - +
Version: Next

injectable

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}

The options parameter is described as follows:

PropertyDescriptionType
serviceIdService id to associatenumber | string | symbol
tagsTags to associatenumber | string | symbol | (number | string | symbol)[]
scopeBinding scopeBindingScope
info

Consider binding docs as reference.

+ + \ No newline at end of file diff --git a/docs/next/api/metadata/introduction/index.html b/docs/next/api/metadata/introduction/index.html index e409dd552..c98bf6491 100644 --- a/docs/next/api/metadata/introduction/index.html +++ b/docs/next/api/metadata/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: Next

Introduction

This library uses metadata to store service dependencies and scopes and provides an API to get metadata. This is commonly used to establish a bridge between iocuak and other IoC libraries.

- - + + \ No newline at end of file diff --git a/docs/next/api/metadata/metadata-provider/index.html b/docs/next/api/metadata/metadata-provider/index.html index 22208f12a..98dda2afa 100644 --- a/docs/next/api/metadata/metadata-provider/index.html +++ b/docs/next/api/metadata/metadata-provider/index.html @@ -4,13 +4,13 @@ Metadata provider | IoCuak - - + +
-
Version: Next

Metadata provider

The MetadataProvider class is provided to easily extract metadata of a given type

getBindingMetadata(type)

Provides binding metadata associated to that type.

note

Values (bound by Container.bindToValue()) do not have metadata directly associated. Those bindings can be accessed via Container.getAllBindings().

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);

getClassMetadata(type)

Provides class metadata associated to that type.

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);
- - +
Version: Next

Metadata provider

The MetadataProvider class is provided to easily extract metadata of a given type

getBindingMetadata(type)

Provides binding metadata associated to that type.

note

Values (bound by Container.bindToValue()) do not have metadata directly associated. Those bindings can be accessed via Container.getAllBindings().

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const typeBindingMetadata: TypeBinding<MetadataProvider, []> = metadataProvider.getBindingMetadata(Dummy);

getClassMetadata(type)

Provides class metadata associated to that type.

import {
inject,
injectable,
BindingScope,
ClassMetadata,
MetadataProvider,
TypeBinding,
} from '@cuaklabs/iocuak';

import { dummyDummyServiceId, dummyFooServiceId } from 'some/path';

@injectable({
id: dummyDummyServiceId,
scope: BindingScope.singleton,
})
class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

const metadataProvider: MetadataProvider = new MetadataProvider();

const classMetadata: ClassMetadata = metadataProvider.getClassMetadata(Dummy);
+ + \ No newline at end of file diff --git a/docs/next/concepts/binding/index.html b/docs/next/concepts/binding/index.html index 216b7baaf..ab5bf795c 100644 --- a/docs/next/concepts/binding/index.html +++ b/docs/next/concepts/binding/index.html @@ -4,13 +4,13 @@ Binding | IoCuak - - + +
Version: Next

Binding

Represents a relation between an injectable element and a binding context. The binding contain things such as the scope of a service or the value of the service. Whenever a service is requested, its binding is read to know what to inject and how to inject the service. Any binding has these properties:

PropertyDescriptionType
idService id. Any attempt to create a service matching this service id is going to use this binding.number | string | symbol
tagsTags associated. Any attempt to create a service matching one of these tags is going to use this binding.number | string | symbol

There are two kinds of bindings:

TypeBinding

A class based binding. A type binding relies on a class constructor to instantiate the service.

PropertyDescriptionType
scopeBinding scope to determine wheter or not a service should be reused.BindingScope
typeClass to be used to call its constructorNewable

Binding scope

When the container creates an instance, it may reuse an existing instance instead if its scope allows it. These are the current scopes of a binding:

  • Transient: An instance of this service is never reused.
  • Request: An instance of this service is reused if service is requested under the same Container.get request.

Example: Given the services A, B and C, both A and B services depends on C. In addition, A services depends on B. If C is injected on request scope, a request to the A service results in the same C instance being injected to both A and B services.

  • Singleton: An instance of this service is always reused.
- - + + \ No newline at end of file diff --git a/docs/next/concepts/class-metadata/index.html b/docs/next/concepts/class-metadata/index.html index 49432d3df..0a26a8277 100644 --- a/docs/next/concepts/class-metadata/index.html +++ b/docs/next/concepts/class-metadata/index.html @@ -4,13 +4,13 @@ Class metadata | IoCuak - - + +
Version: Next

Class metadata

Represents a relation between an injectable element and its dependencies. Whenever a type service is attempted to be instantiated, it's class metadata is used to determine which services should be used as dependencies.

PropertyDescriptionType
constructorArgumentsConstructor arguments metadataClassElementMetadata
propertiesProperties metadata.Map<string | symbol, ClassElementMetadata>

ClassElementMetadata

Class element metadata can be of two different kinds:

ClassElementServiceIdMetadata

Represents a service dependency

PropertyDescriptionType
typeClass element metadata typeClassElementMetadatApi.serviceId
valueService id associated to the elementnumber | string | symbol

ClassElementTagMetadataApi

Represents services associated to a tag dependency

PropertyDescriptionType
typeClass element metadata typeClassElementMetadatApi.tag
valueTag associated to the elementnumber | string | symbol
- - + + \ No newline at end of file diff --git a/docs/next/concepts/container-module-metadata/index.html b/docs/next/concepts/container-module-metadata/index.html index 0366e56b2..3af67624b 100644 --- a/docs/next/concepts/container-module-metadata/index.html +++ b/docs/next/concepts/container-module-metadata/index.html @@ -4,13 +4,13 @@ Container module metadata | IoCuak - - + +
Version: Next

Container module metadata

Represents configuration to build and load a container module.

ContainerModuleMetadata can be of four different different kinds:

ContainerModuleFactoryMetadata

Represents a container module to be built using a factory.

PropertyDescriptionType
idContainerModuleMetadata idContainerModuleMetadataId
importsDependencies required to build the moduleContainerModuleMetadata[]
factoryFunction to build the moduleFunction
injectsServices to be passed as argumentsServiceId[]

ContainerModuleClassMetadata

Represents a container module to be built using a decorated ContainerModule class.

PropertyDescriptionType
idContainerModuleMetadata idContainerModuleMetadataId
importsDependencies required to build the moduleContainerModuleMetadata[]
moduleContainerModuleMetadaClass to be loadedNewable<ContainerModuleMetadata>

ContainerModule

Represents a ContainerModule instance to be loaded. Equivalent to a ContainerModuleFactoryMetadata with a factory with no arguments returning the module.

Newable<ContainerModule>

Represents a ContainerModule class to be instantiated in order to load a container module. Equivalent to a ContainerModuleClassMetadata with no the class as module.

- - + + \ No newline at end of file diff --git a/docs/next/tutorial/container-modules/creating-modules/index.html b/docs/next/tutorial/container-modules/creating-modules/index.html index b6448853a..f69186362 100644 --- a/docs/next/tutorial/container-modules/creating-modules/index.html +++ b/docs/next/tutorial/container-modules/creating-modules/index.html @@ -4,13 +4,13 @@ Creating modules | IoCuak - - + +
-
Version: Next

Creating modules

A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

This way different service bindings can be grouped.

- - +
Version: Next

Creating modules

A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

This way different service bindings can be grouped.

+ + \ No newline at end of file diff --git a/docs/next/tutorial/container-modules/introduction/index.html b/docs/next/tutorial/container-modules/introduction/index.html index d6dc6452c..6cd987ed8 100644 --- a/docs/next/tutorial/container-modules/introduction/index.html +++ b/docs/next/tutorial/container-modules/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: Next

Introduction

Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.

- - + + \ No newline at end of file diff --git a/docs/next/tutorial/container-modules/loading-modules-from-metadata/index.html b/docs/next/tutorial/container-modules/loading-modules-from-metadata/index.html index 4068d3e1d..59505aa8b 100644 --- a/docs/next/tutorial/container-modules/loading-modules-from-metadata/index.html +++ b/docs/next/tutorial/container-modules/loading-modules-from-metadata/index.html @@ -4,13 +4,13 @@ Loading modules from metadata | IoCuak - - + +
-
Version: Next

Loading modules from metadata

Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.

Container module metadata is provided for those purposes.

Container Module Factory Metatada

This approach uses a factory to create the module. This metadata can receive an injects property to receive injected dependencies.

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module.

Container Module Class Metadata

This approach receives a class which is used to create the module.

import {
Container,
ContainerModule,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

@injectable()
class MyContainerModule implements ContainerModule {

constructor(
@inject(Dependency)
public readonly someServiceDependency: Dependency,
) {}

public load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
imports: [someContainerModuleMetadataDependency],
module: MyContainerModule,
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports.

This approach is highly inspired on NestJs modules.

Consider the ContainerModuleMetadata page as reference to know more about ContainerModuleMetadata details.

- - +
Version: Next

Loading modules from metadata

Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.

Container module metadata is provided for those purposes.

Container Module Factory Metatada

This approach uses a factory to create the module. This metadata can receive an injects property to receive injected dependencies.

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module.

Container Module Class Metadata

This approach receives a class which is used to create the module.

import {
Container,
ContainerModule,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

@injectable()
class MyContainerModule implements ContainerModule {

constructor(
@inject(Dependency)
public readonly someServiceDependency: Dependency,
) {}

public load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
imports: [someContainerModuleMetadataDependency],
module: MyContainerModule,
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports.

This approach is highly inspired on NestJs modules.

Consider the ContainerModuleMetadata page as reference to know more about ContainerModuleMetadata details.

+ + \ No newline at end of file diff --git a/docs/next/tutorial/decorating-classes/inject-decorator/index.html b/docs/next/tutorial/decorating-classes/inject-decorator/index.html index fd432739c..0783f45a5 100644 --- a/docs/next/tutorial/decorating-classes/inject-decorator/index.html +++ b/docs/next/tutorial/decorating-classes/inject-decorator/index.html @@ -4,13 +4,13 @@ The inject decorator | IoCuak - - + +
-
Version: Next

The inject decorator

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

This way the IoC container knows the property foo should be injected with the service associated to dummyFooServiceId.

- - +
Version: Next

The inject decorator

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

This way the IoC container knows the property foo should be injected with the service associated to dummyFooServiceId.

+ + \ No newline at end of file diff --git a/docs/next/tutorial/decorating-classes/injectable-decorator/index.html b/docs/next/tutorial/decorating-classes/injectable-decorator/index.html index 3ab0e0e16..d7ab1609f 100644 --- a/docs/next/tutorial/decorating-classes/injectable-decorator/index.html +++ b/docs/next/tutorial/decorating-classes/injectable-decorator/index.html @@ -4,13 +4,13 @@ The injectable decorator | IoCuak - - + +
-
Version: Next

The injectable decorator

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const barSymbol: symbol = Symbol();

/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info

Consider binding docs as reference.

- - +
Version: Next

The injectable decorator

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const barSymbol: symbol = Symbol();

/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info

Consider binding docs as reference.

+ + \ No newline at end of file diff --git a/docs/next/tutorial/introduction/index.html b/docs/next/tutorial/introduction/index.html index 607dc3924..76df3190d 100644 --- a/docs/next/tutorial/introduction/index.html +++ b/docs/next/tutorial/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: Next

Introduction

Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.

This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm.

- - + + \ No newline at end of file diff --git a/docs/next/tutorial/the-container-object/binding-a-service/index.html b/docs/next/tutorial/the-container-object/binding-a-service/index.html index 309fab15d..6ab4493b5 100644 --- a/docs/next/tutorial/the-container-object/binding-a-service/index.html +++ b/docs/next/tutorial/the-container-object/binding-a-service/index.html @@ -4,13 +4,13 @@ Binding a service | IoCuak - - + +
-
Version: Next

Binding a service

Services can be easily bound to the container calling it directly.

import { Container } from '@cuaklabs/iocuak';

class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

Services can also be bound through a ContainerModule:

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);
- - +
Version: Next

Binding a service

Services can be easily bound to the container calling it directly.

import { Container } from '@cuaklabs/iocuak';

class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

Services can also be bound through a ContainerModule:

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);
+ + \ No newline at end of file diff --git a/docs/next/tutorial/the-container-object/creating-instances/index.html b/docs/next/tutorial/the-container-object/creating-instances/index.html index 98bd1c94d..4abe21126 100644 --- a/docs/next/tutorial/the-container-object/creating-instances/index.html +++ b/docs/next/tutorial/the-container-object/creating-instances/index.html @@ -4,13 +4,13 @@ Creating instances | IoCuak - - + +
-
Version: Next

Creating instances

Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated

import { Container, injectable } from '@cuaklabs/iocuak';

@injectable()
class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

const dummyInstance: Dummy = container.get(Dummy);
- - +
Version: Next

Creating instances

Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated

import { Container, injectable } from '@cuaklabs/iocuak';

@injectable()
class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

const dummyInstance: Dummy = container.get(Dummy);
+ + \ No newline at end of file diff --git a/docs/next/tutorial/the-container-object/introduction/index.html b/docs/next/tutorial/the-container-object/introduction/index.html index 76f2f78da..85134bb7b 100644 --- a/docs/next/tutorial/the-container-object/introduction/index.html +++ b/docs/next/tutorial/the-container-object/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: Next

Introduction

The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.

- - + + \ No newline at end of file diff --git a/docs/tutorial/container-modules/creating-modules/index.html b/docs/tutorial/container-modules/creating-modules/index.html index 9db9e01fd..3b83948c8 100644 --- a/docs/tutorial/container-modules/creating-modules/index.html +++ b/docs/tutorial/container-modules/creating-modules/index.html @@ -4,13 +4,13 @@ Creating modules | IoCuak - - + +
-
Version: 0.5.0

Creating modules

A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

This way different service bindings can be grouped.

- - +
Version: 0.5.0

Creating modules

A container module declares a load method receiving a ContainerModuleBindingService. This service allows us to bind types and values.

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);

This way different service bindings can be grouped.

+ + \ No newline at end of file diff --git a/docs/tutorial/container-modules/introduction/index.html b/docs/tutorial/container-modules/introduction/index.html index 592d8789f..d76a9a01e 100644 --- a/docs/tutorial/container-modules/introduction/index.html +++ b/docs/tutorial/container-modules/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.5.0

Introduction

Dependency injection is more than just adding a bunch of bindings. Sometimes binding logic should be splitted for maintainability purposes. Sometimes binding logic can be used to generate services related to existing ones. Container modules are the key for accomplishing those tasks.

- - + + \ No newline at end of file diff --git a/docs/tutorial/container-modules/loading-modules-from-metadata/index.html b/docs/tutorial/container-modules/loading-modules-from-metadata/index.html index cd28f34d2..4da4ec874 100644 --- a/docs/tutorial/container-modules/loading-modules-from-metadata/index.html +++ b/docs/tutorial/container-modules/loading-modules-from-metadata/index.html @@ -4,13 +4,13 @@ Loading modules from metadata | IoCuak - - + +
-
Version: 0.5.0

Loading modules from metadata

Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.

Container module metadata is provided for those purposes.

Container Module Factory Metatada

This approach uses a factory to create the module. This metadata can receive an injects property to receive injected dependencies.

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module.

Container Module Class Metadata

This approach receives a class which is used to create the module.

import {
Container,
ContainerModule,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

@injectable()
class MyContainerModule implements ContainerModule {

constructor(
@inject(Dependency)
public readonly someServiceDependency: Dependency,
) {}

public load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
imports: [someContainerModuleMetadataDependency],
module: MyContainerModule,
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports.

This approach is highly inspired on NestJs modules.

Consider the ContainerModuleMetadata page as reference to know more about ContainerModuleMetadata details.

- - +
Version: 0.5.0

Loading modules from metadata

Some more complex scenarios could require containers to be injected in a certain order. Some others could require certain dependencies to perform bindings, such as config to establish a connection to a database.

Container module metadata is provided for those purposes.

Container Module Factory Metatada

This approach uses a factory to create the module. This metadata can receive an injects property to receive injected dependencies.

import {
Container,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
factory: (someServiceDependency: Dependency) => ({
load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}),
imports: [someContainerModuleMetadataDependency],
injects: [Dependency],
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module to be loaded can be passed instead. This is equivalent to a factory metadata with no imports and a factory with no params that returns the module.

Container Module Class Metadata

This approach receives a class which is used to create the module.

import {
Container,
ContainerModule,
ContainerModuleBindingService,
ContainerModuleMetadata,
} from '@cuaklabs/iocuak';

import { someContainerModuleMetadataDependency } from 'some/path';

@injectable()
class MyContainerModule implements ContainerModule {

constructor(
@inject(Dependency)
public readonly someServiceDependency: Dependency,
) {}

public load: (containerModuleBindingService: ContainerModuleBindingService) => {
containerModuleBindingService.bindToValue({
serviceId: 'service-id',
value: someServiceDependency.someValue,
});
}
}

async function entryPoint(): Promise<void> {
const container: Container = Container.build();

const containerModuleMetadata: ContainerModuleMetadata = {
imports: [someContainerModuleMetadataDependency],
module: MyContainerModule,
}

await container.loadMetadata(containerModuleMetadata);
}

Optionally, a container module metadata class can be passed insted. This is equivalent to a metadata with the class as module and no imports.

This approach is highly inspired on NestJs modules.

Consider the ContainerModuleMetadata page as reference to know more about ContainerModuleMetadata details.

+ + \ No newline at end of file diff --git a/docs/tutorial/decorating-classes/inject-decorator/index.html b/docs/tutorial/decorating-classes/inject-decorator/index.html index a8e26265f..1a031bd7b 100644 --- a/docs/tutorial/decorating-classes/inject-decorator/index.html +++ b/docs/tutorial/decorating-classes/inject-decorator/index.html @@ -4,13 +4,13 @@ The inject decorator | IoCuak - - + +
-
Version: 0.5.0

The inject decorator

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

This way the IoC container knows the property foo should be injected with the service associated to dummyFooServiceId.

- - +
Version: 0.5.0

The inject decorator

This decorator targets a property or a parameter and provides the service associated.

import { inject } from '@cuaklabs/iocuak';

import { dummyFooServiceId } from 'some/path';

class Dummy {
@inject(dummyFooServiceId)
public foo: unknown;
}

This way the IoC container knows the property foo should be injected with the service associated to dummyFooServiceId.

+ + \ No newline at end of file diff --git a/docs/tutorial/decorating-classes/injectable-decorator/index.html b/docs/tutorial/decorating-classes/injectable-decorator/index.html index f64095b33..e5da75f0d 100644 --- a/docs/tutorial/decorating-classes/injectable-decorator/index.html +++ b/docs/tutorial/decorating-classes/injectable-decorator/index.html @@ -4,13 +4,13 @@ The injectable decorator | IoCuak - - + +
-
Version: 0.5.0

The injectable decorator

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const barSymbol: symbol = Symbol();

/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info

Consider binding docs as reference.

- - +
Version: 0.5.0

The injectable decorator

This decorator targets a class and allows to provide options to set its binding.

import { injectable, BindingScope } from '@cuaklabs/iocuak';

/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}

const barSymbol: symbol = Symbol();

/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}

const bazSymbol: symbol = Symbol();

/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info

Consider binding docs as reference.

+ + \ No newline at end of file diff --git a/docs/tutorial/introduction/index.html b/docs/tutorial/introduction/index.html index 62c49c335..387719765 100644 --- a/docs/tutorial/introduction/index.html +++ b/docs/tutorial/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.5.0

Introduction

Are you an OOP paradigm lover? Me too. Have you ever called a constructor with tons of dependencies with tons of dependencies? Me too, that was before using IoC techniques.

This library is exactly that: an IoC container designed to help developers build projects on top of OOP paradigm.

- - + + \ No newline at end of file diff --git a/docs/tutorial/the-container-object/binding-a-service/index.html b/docs/tutorial/the-container-object/binding-a-service/index.html index 048acf552..a57b30c61 100644 --- a/docs/tutorial/the-container-object/binding-a-service/index.html +++ b/docs/tutorial/the-container-object/binding-a-service/index.html @@ -4,13 +4,13 @@ Binding a service | IoCuak - - + +
-
Version: 0.5.0

Binding a service

Services can be easily bound to the container calling it directly.

import { Container } from '@cuaklabs/iocuak';

class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

Services can also be bound through a ContainerModule:

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);
- - +
Version: 0.5.0

Binding a service

Services can be easily bound to the container calling it directly.

import { Container } from '@cuaklabs/iocuak';

class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

Services can also be bound through a ContainerModule:

import { ContainerModule, ContainerModuleBindingService } from '@cuaklabs/iocuak';

const container: Container = Container.build();

const containerModule: ContainerModule = {
load: (containerModuleBindingService: ContainerModuleBindingService): void => {
containerModuleBindingService.bind(Dummy);
},
};

container.load(containerModule);
+ + \ No newline at end of file diff --git a/docs/tutorial/the-container-object/creating-instances/index.html b/docs/tutorial/the-container-object/creating-instances/index.html index cc7fb71ba..55bf72207 100644 --- a/docs/tutorial/the-container-object/creating-instances/index.html +++ b/docs/tutorial/the-container-object/creating-instances/index.html @@ -4,13 +4,13 @@ Creating instances | IoCuak - - + +
-
Version: 0.5.0

Creating instances

Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated

import { Container, injectable } from '@cuaklabs/iocuak';

@injectable()
class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

const dummyInstance: Dummy = container.get(Dummy);
- - +
Version: 0.5.0

Creating instances

Once a service and all its dependencies are bound, its possible to create an instance if all the classes involved are properly decorated

import { Container, injectable } from '@cuaklabs/iocuak';

@injectable()
class Dummy {}

const container: Container = Container.build();
container.bind(Dummy);

const dummyInstance: Dummy = container.get(Dummy);
+ + \ No newline at end of file diff --git a/docs/tutorial/the-container-object/introduction/index.html b/docs/tutorial/the-container-object/introduction/index.html index 3ca7f92e9..7b4d08d0e 100644 --- a/docs/tutorial/the-container-object/introduction/index.html +++ b/docs/tutorial/the-container-object/introduction/index.html @@ -4,13 +4,13 @@ Introduction | IoCuak - - + +
Version: 0.5.0

Introduction

The core of this library is the IoC container. It allows you to bind services and create instances based on those bindings.

- - + + \ No newline at end of file diff --git a/index.html b/index.html index 926b8656a..430fff74f 100644 --- a/index.html +++ b/index.html @@ -4,13 +4,13 @@ IoCuak - - + +

IoCuak

The simple IoC container

- - + + \ No newline at end of file