PageSourceSearch

https://developers.basistheory.com/assets/js/3ab9cb5c.21c727a0.js

js basistheory.com collected 2026-10-01 15:10:38 UTC 29,354 bytes, 2 lines download raw bytes

1/*! For license information please see 3ab9cb5c.21c727a0.js.LICENSE.txt */
2"use strict";(self.webpackChunkdevelopers_basistheory_com=self.webpackChunkdevelopers_basistheory_com||[]).push([[1055],{45740:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>b,frontMatter:()=>i,metadata:()=>r,toc:()=>u});const r=JSON.parse('{"id":"sdks/web/web-elements/cobadge","title":"Co-Badge Support","description":"Co-badge support allows the Card Element to handle cards that support multiple payment networks, giving users the ability to choose which network to use for processing their payment. This feature is particularly important in regions where co-branded cards are common.","source":"@site/docs/sdks/web/web-elements/cobadge.mdx","sourceDirName":"sdks/web/web-elements","slug":"/sdks/web/web-elements/cobadge","permalink":"/docs/sdks/web/web-elements/cobadge","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedAt":1790618629000,"frontMatter":{"title":"Co-Badge Support","sidebar_label":"Co-Badge Support"},"sidebar":"sdk","previous":{"title":"Migrating to Web Elements","permalink":"/docs/sdks/web/web-elements/migration"},"next":{"title":"Troubleshooting","permalink":"/docs/sdks/web/web-elements/troubleshooting"}}');var a=t(74848),s=t(28453),l=t(13187),c=t(83227),o=t(85202);const i={title:"Co-Badge Support",sidebar_label:"Co-Badge Support"},d="Co-Badge Support",h={},u=[{value:"Overview",id:"overview",level:2},{value:"Enabling Co-Badge Support",id:"enabling-co-badge-support",level:2},{value:"Supported Co-Badge Networks",id:"supported-co-badge-networks",level:2},{value:"Pre-Selected Networks",id:"pre-selected-networks",level:2},{value:"Co-Badge Events",id:"co-badge-events",level:2},{value:"Change Event with Co-Badge Data",id:"change-event-with-co-badge-data",level:3},{value:"API Reference",id:"api-reference",level:2},{value:"coBadgedSupport Property",id:"cobadgedsupport-property",level:3},{value:"preSelectedNetworks Property",id:"preselectednetworks-property",level:3},{value:"selectedNetwork Event Property",id:"selectednetwork-event-property",level:3},{value:"Test Cards",id:"test-cards",level:2},{value:"Cartes Bancaires",id:"cartes-bancaires",level:3},{value:"Bancontact",id:"bancontact",level:3},{value:"Dankort",id:"dankort",level:3}];function p(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"co-badge-support",children:"Co-Badge Support"})}),"\n",(0,a.jsx)(n.p,{children:"Co-badge support allows the Card Element to handle cards that support multiple payment networks, giving users the ability to choose which network to use for processing their payment. This feature is particularly important in regions where co-branded cards are common."}),"\n",(0,a.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,a.jsx)(n.p,{children:"When a card supports multiple payment networks (co-badged), the Card Element can detect this and allow users to select their preferred network. Basis Theory supports co-badge functionality for the following domestic payment schemes:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.strong,{children:"Cartes Bancaires"})," - French domestic payment network, commonly co-badged with Visa or Mastercard"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.strong,{children:"Bancontact"})," - Belgian domestic payment network, commonly co-badged with Mastercard"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.strong,{children:"Dankort"})," - Danish domestic payment network, commonly co-badged with Visa"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"enabling-co-badge-support",children:"Enabling Co-Badge Support"}),"\n",(0,a.jsxs)(n.p,{children:["To enable co-badge support on your Card Element, include the ",(0,a.jsx)(n.code,{children:"coBadgedSupport"})," property in your element configuration:"]}),"\n",(0,a.jsxs)(l.A,{className:"bt-tabs",children:[(0,a.jsx)(c.A,{value:"js",label:"Web Elements",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"// Create a Card Element with co-badge support\nconst cardElement = bt.createElement('card', {\n  targetId: 'my-card',\n  coBadgedSupport: ['cartes-bancaires'],\n  onChange: (event) => {\n    // Handle network selection events\n    if (event.selectedNetwork) {\n      console.log('Selected network:', event.selectedNetwork);\n    }\n  }\n});\n\n// Mount the element\ncardElement.mount('#card-container');\n"})})}),(0,a.jsx)(c.A,{value:"react",label:"React Elements",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-jsx",children:"import { CardElement } from \"@basis-theory/react-elements\";
2\n\nfunction PaymentForm() {\n  const handleCardChange = (event) => {\n    // Handle network selection events\n    if (event.selectedNetwork) {\n      console.log('Selected network:', event.selectedNetwork);\n    }\n  };\n\n  return (\n    <CardElement\n      id=\"my-card\"\n      coBadgedSupport={['cartes-bancaires']}\n      onChange={handleCardChange}\n    />\n  );\n}\n"})})})]}),"\n",(0,a.jsx)(n.h2,{id:"supported-co-badge-networks",children:"Supported Co-Badge Networks"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Network"}),(0,a.jsx)(n.th,{children:"Identifier"}),(0,a.jsx)(n.th,{children:"Description"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Cartes Bancaires"}),(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"cartes-bancaires"})}),(0,a.jsx)(n.td,{children:"French domestic payment scheme, often co-badged with Visa or Mastercard"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Bancontact"}),(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"bancontact"})}),(0,a.jsx)(n.td,{children:"Belgian domestic payment scheme, often co-badged with Mastercard"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Dankort"}),(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"dankort"})}),(0,a.jsx)(n.td,{children:"Danish domestic payment scheme, often co-badged with Visa"})]})]})]}),"\n",(0,a.jsx)(o.F,{type:o.W.WARNING,children:"Adding unsupported networks will result in an error. Additional co-badge networks may be supported in future releases."}),"\n",(0,a.jsx)(n.h2,{id:"pre-selected-networks",children:"Pre-Selected Networks"}),"\n",(0,a.jsxs)(n.p,{children:["You can use the ",(0,a.jsx)(n.code,{children:"preSelectedNetworks"})," property to automatically select a preferred network when a co-badged card is detected. This is useful when you have a preferred domestic network for processing payments."]}),"\n",(0,a.jsxs)(l.A,{className:"bt-tabs",children:[(0,a.jsx)(c.A,{value:"js",label:"Web Elements",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"// Create a Card Element with pre-selected network preference\nconst cardElement = bt.createElement('card', {\n  targetId: 'my-card',\n  coBadgedSupport: ['cartes-bancaires', 'bancontact', 'dankort'],\n  // highlight-next-line\n  preSelectedNetworks: ['cartes-bancaires', 'bancontact'],\n  onChange: (event) => {\n    if (event.selectedNetwork) {\n      console.log('Selected network:', event.selectedNetwork);\n    }\n  }\n});\n\ncardElement.mount('#card-container');\n"})})}),(0,a.jsx)(c.A,{value:"react",label:"React Elements",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-jsx",children:"import { CardElement } from \"@basis-theory/react-elements\";\n\nfunction PaymentForm() {\n  const handleCardChange = (event) => {\n    if (event.selectedNetwork) {\n      console.log('Selected network:', event.selectedNetwork);\n    }\n  };\n\n  return (\n    <CardElement\n      id=\"my-card\"\n      coBadgedSupport={['cartes-bancaires', 'bancontact', 'dankort']}\n      // highlight-next-line\n      preSelectedNetworks={['cartes-bancaires', 'bancontact']}\n      onChange={handleCardChange}\n    />\n  );\n}\n"})})})]}),"\n",(0,a.jsxs)(n.p,{children:["When ",(0,a.jsx)(n.code,{children:"preSelectedNetworks"})," is provided:"]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"The first network from the list that matches an available co-badged option is automatically selected"}),"\n",(0,a.jsx)(n.li,{children:"Users can still manually change the selection after auto-selection"}),"\n",(0,a.jsxs)(n.li,{children:["If no networks in ",(0,a.jsx)(n.code,{children:"preSelectedNetworks"})," match the available options, no auto-selection occurs"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"co-badge-events",children:"Co-Badge Events"}),"\n",(0,a.jsx)(n.p,{children:"When co-badge support is enabled, the Card Element emits additional event data that allows your application to respond to network selection changes."}),"\n",(0,a.jsx)(n.h3,{id:"change-event-with-co-badge-data",children:"Change Event with Co-Badge Data"}),"\n",(0,a.jsxs)(n.p,{children:["The ",(0,a.jsx)(n.code,{children:"change"})," event includes a ",(0,a.jsx)(n.code,{children:"selectedNetwork"})," property when co-badge support is enabled and a user selects a network:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'{\n  cardBin: "123456",\n  cardBrand: "visa",\n  cardLast4: "1234",\n  complete: true,\n  empty: false,\n  errors: [],\n  maskSatisfied: true,\n  valid: true,\n  binInfo: { /* BIN information */ },\n  selectedNetwork: "cartes-bancaires"  // The user\'s selected network\n}\n'})}),"\n",(0,a.jsx)(n.h2,{id:"api-reference",children:"API Reference"}),"\n",(0,a.jsx)(n.h3,{id:"cobadgedsupport-property",children:"coBadgedSupport Property"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Property"}),(0,a.jsx)(n.th,{children:"Type"}),(0,a.jsx)(n.th,{children:"Required"}),(0,a.jsx)(n.th,{children:"Default"}),(0,a.jsx)(n.th,{children:"Description"})]})}),(0,a.jsx)(n.tbody,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"coBadgedSupport"}),(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"array"})}),(0,a.jsx)(n.td,{children:"No"}),(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"[]"})}),(0,a.jsx)(n.td,{children:"Array of supported co-badge networks"})]})})]}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.strong,{children:"Supported Values:"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'cartes-bancaires'"})," - French Cartes Bancaires network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'bancontact'"})," - Belgian Bancontact network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'dankort'"})," - Danish Dankort network"]}),"\n"]}),"\n",(0,a.jsx)(n.h3,{id:"preselectednetworks-property",children:"preSelectedNetworks Property"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Property"}),(0,a.jsx)(n.th,{children:"Type"}),(0,a.jsx)(n.th,{children:"Required"}),(0,a.jsx)(n.th,{children:"Default"}),(0,a.jsx)(n.th,{children:"Description"})]})}),(0,a.jsx)(n.tbody,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"preSelectedNetworks"}),(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"array"})}),(0,a.jsx)(n.td,{children:"No"}),(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"undefined"})}),(0,a.jsx)(n.td,{children:"Ordered array of preferred networks for auto-selection"})]})})]}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.strong,{children:"Supported Values:"}),"\nAny valid card brand identifier, including:"]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'cartes-bancaires'"})," - French Cartes Bancaires network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'bancontact'"})," - Belgian Bancontact network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'dankort'"})," - Danish Dankort network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'visa'"})," - Visa network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'mastercard'"})," - Mastercard network"]}),"\n"]}),"\n",(0,a.jsx)(n.h3,{id:"selectednetwork-event-property",children:"selectedNetwork Event Property"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Property"}),(0,a.jsx)(n.th,{children:"Type"}),(0,a.jsx)(n.th,{children:"Description"})]})}),(0,a.jsx)(n.tbody,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"selectedNetwork"}),(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"string"})}),(0,a.jsx)(n.td,{children:"The network selected by the user for co-badged cards"})]})})]}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.strong,{children:"Possible Values:"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'cartes-bancaires'"})," - When user selects Cartes Bancaires network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'bancontact'"})," - When user selects Bancontact network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'dankort'"})," - When user selects Dankort network"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'visa'"})," - When user selects Visa network (for co-badged cards)"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"'mastercard'"})," - When user selects Mastercard network (for co-badged cards)"]}),"\n"]}),"\n",(0,a.jsxs)(o.F,{children:["The ",(0,a.jsx)("code",{children:"selectedNetwork"})," property is only present in change events when co-badge support is enabled and a user has made a network selection."]}),"\n",(0,a.jsx)(n.h2,{id:"test-cards",children:"Test Cards"}),"\n",(0,a.jsx)(n.p,{children:"Within a Test Tenant, the following test cards can be used to test different scenarios when using co-badged features."}),"\n",(0,a.jsx)(o.F,{type:o.W.INFO,children:"These cards are not valid for real transactions and should only be used in a Test Tenant."}),"\n",(0,a.jsx)(n.h3,{id:"cartes-bancaires",children:"Cartes Bancaires"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Test PAN"}),(0,a.jsx)(n.th,{children:"International Scheme"}),(0,a.jsx)(n.th,{children:"Domestic Network"}),(0,a.jsx)(n.th,{children:"Supported Countries"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"4000000022222220"})}),(0,a.jsx)(n.td,{children:"Visa"}),(0,a.jsx)(n.td,{children:"Cartes Bancaires"}),(0,a.jsx)(n.td,{children:"France"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"5555550099999999"})}),(0,a.jsx)(n.td,{children:"Mastercard"}),(0,a.jsx)(n.td,{children:"Cartes Bancaires"}),(0,a.jsx)(n.td,{children:"France"})]})]})]}),"\n",(0,a.jsxs)(n.p,{children:["When tokenized, both cards include an entry in ",(0,a.jsx)(n.a,{href:"/docs/api/tokens#card-additional",children:(0,a.jsx)(n.code,{children:"card.additional"})})," with ",(0,a.jsx)(n.code,{children:"brand"})," set to ",(0,a.jsx)(n.code,{children:"cartes-bancaires"}),"."]}),"\n",(0,a.jsx)(n.h3,{id:"bancontact",children:"Bancontact"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Test PAN"}),(0,a.jsx)(n.th,{children:"International Scheme"}),(0,a.jsx)(n.th,{children:"Domestic Network"}),(0,a.jsx)(n.th,{children:"Supported Countries"})]})}),(0,a.jsx)(n.tbody,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"5550009900000005"})}),(0,a.jsx)(n.td,{children:"Mastercard"}),(0,a.jsx)(n.td,{children:"Bancontact"}),(0,a.jsx)(n.td,{children:"Belgium"})]})})]}),"\n",(0,a.jsx)(n.h3,{id:"dankort",children:"Dankort"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Test PAN"}),(0,a.jsx)(n.th,{children:"International Scheme"}),(0,a.jsx)(n.th,{children:"Domestic Network"}),(0,a.jsx)(n.th,{children:"Supported Countries"})]})}),(0,a.jsx)(n.tbody,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:(0,a.jsx)(n.code,{children:"4571009900000003"})}),(0,a.jsx)(n.td,{children:"Visa"}),(0,a.jsx)(n.td,{children:"Dankort"}),(0,a.jsx)(n.td,{children:"Denmark"})]})})]})]})}function b(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},21020:(e,n,t)=>{var r=t(96540),a=Symbol.for("react.element"),s=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,c=r.__SECRET_INT
2ERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function i(e,n,t){var r,s={},i=null,d=null;for(r in void 0!==t&&(i=""+t),void 0!==n.key&&(i=""+n.key),void 0!==n.ref&&(d=n.ref),n)l.call(n,r)&&!o.hasOwnProperty(r)&&(s[r]=n[r]);if(e&&e.defaultProps)for(r in n=e.defaultProps)void 0===s[r]&&(s[r]=n[r]);return{$$typeof:a,type:e,key:i,ref:d,props:s,_owner:c.current}}n.Fragment=s,n.jsx=i,n.jsxs=i},74848:(e,n,t)=>{e.exports=t(21020)},83227:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(96540),a=t(34164);const s={tabItem:"tabItem_Ymn6"};function l({children:e,hidden:n,className:t}){return r.createElement("div",{role:"tabpanel",className:(0,a.A)(s.tabItem,t),hidden:n},e)}},13187:(e,n,t)=>{t.d(n,{A:()=>C});var r=t(96540),a=t(34164),s=t(23575),l=t(56347),c=t(91648),o=t(62072),i=t(73353),d=t(85831);function h(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function u(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(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}(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})),e}function p(e){var n,t;return null!==(t=null===(n=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}
2)))||void 0===n?void 0:n.filter(Boolean))&&void 0!==t?t:[]}function b(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=null!=n?n:function(e){return p(e).map((({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r})))}(t);return function(e){const n=(0,i.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function j({value:e,tabValues:n}){return n.some((n=>n.value===e))}function x({queryString:e=!1,groupId:n}){const t=(0,l.W6)(),a=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:e,groupId:n}),s=(0,o.aZ)(a),c=(0,r.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(t.location.search);n.set(a,e),t.replace(u(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){h(e,n,t[n])}))}return e}({},t.location),{search:n.toString()}))}),[a,t]);return[s,c]}function m(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,s=b(e),[l,o]=(0,r.useState)((()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!j({value:e,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}var t;const r=null!==(t=n.find((e=>e.default)))&&void 0!==t?t:n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:s}))),[i,h]=x({queryString:t,groupId:a}),[u,p]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,a]=(0,d.Dv)(n);return[t,(0,r.useCallback)((e=>{n&&a.set(e)}),[n,a])]}({groupId:a}),m=(()=>{const e=null!=i?i:u;return j({value:e,tabValues:s})?e:null})();(0,c.A)((()=>{m&&o(m)}),[m]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!j({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),h(e),p(e)}),[h,p,s]),tabValues:s}}var f=t(52700);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function w(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){v(e,n,t[n])}))}return e}function y(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(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}(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})),e}function k({className:e,block:n,selectedValue:t,selectValue:l,tabValues:c}){const o=[],{blockElementScrollPositionUntilNextRender:i}=(0,s.a_)(),d=e=>{const n=e.currentTarget,r=o.indexOf(n),a=c[r].value;a!==t&&(i(n),l(a))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=o.indexOf(e.currentTarget)+1;var t;n=null!==(t=o[r])&&void 0!==t?t:o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;var r;n=null!==(r=o[t])&&void 0!==r?r:o[o.length-1];break}}null==n||n.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":n},e)},c.map((({value:e,label:n,attributes:s})=>r.createElement("li",y(w({role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,key:e,ref:e=>{o.push(e)},onKeyDown:h,onClick:d},s),{className:(0,a.A)("tabs__item",g.tabItem,null==s?void 0:s.className,{"tabs__item--active":t===e})}),null!=n?n:e))))}function E({lazy:e,children:n,selectedValue:t}
2){const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=s.find((e=>e.props.value===t));return e?(0,r.cloneElement)(e,{className:(0,a.A)("margin-top--md",e.props.className)}):null}return r.createElement("div",{className:"margin-top--md"},s.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==t}))))}function O(e){const n=m(e);return r.createElement("div",{className:(0,a.A)("tabs-container",g.tabList)},r.createElement(k,w({},n,e)),r.createElement(E,w({},n,e)))}function C(e){const n=(0,f.A)();return r.createElement(O,w({key:String(n)},e),p(e.children))}},85202:(e,n,t)=>{t.d(n,{F:()=>P,W:()=>B});var r=t(34164),a=t(96540);const s="container_ygYU",l="title_KE4f",c="content_mpoX",o="error_YPD5",i="warning_Vv3u",d="info_XpSc",h="success_pFpA",u="neutral_bgLU",p="svg_xN_H";var b;function j(){return j=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},j.apply(null,arguments)}const x=e=>{let{title:n,titleId:t,...r}=e;return a.createElement("svg",j({xmlns:"http://www.w3.org/2000/svg",width:18,height:18,fill:"none",viewBox:"0 0 18 18","aria-labelledby":t},r),n?a.createElement("title",{id:t},n):null,b||(b=a.createElement("path",{fill:"#F56C9D",fillRule:"evenodd",d:"M9 1.438A7.557 7.557 0 0 0 1.438 9 7.557 7.557 0 0 0 9 16.563 7.56 7.56 0 0 0 16.563 9 7.56 7.56 0 0 0 9 1.438M.063 9A8.93 8.93 0 0 1 9 .063 8.937 8.937 0 0 1 17.938 9 8.937 8.937 0 0 1 9 17.938 8.93 8.93 0 0 1 .063 9M9 4.188c.38 0 .688.307.688.687v4.583a.687.687 0 1 1-1.376 0V4.875c0-.38.308-.687.688-.687m-.006 7.791H9q.034 0 .067.003c.444.038.85.4.85.914 0 .27-.122.496-.272.645a.92.92 0 0 1-.645.271.92.92 0 0 1-.917-.916.914.914 0 0 1 .908-.917z",clipRule:"evenodd"})))};var m,f;function g(){return g=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},g.apply(null,arguments)}const v=e=>{let{title:n,titleId:t,...r}=e;return a.createElement("svg",g({xmlns:"http://www.w3.org/2000/svg",width:20,height:18,fill:"none",viewBox:"0 0 20 18","aria-labelledby":t},r),n?a.createElement("title",{id:t},n):null,m||(m=a.createElement("path",{fill:"#FFA726",fillRule:"evenodd",d:"M7.656 1.614c1.04-1.809 3.649-1.809 4.689 0l7.055 12.27c1.037 1.803-.264 4.053-2.344 4.053H2.945c-2.08 0-3.381-2.25-2.345-4.052zm3.497.685a1.33 1.33 0 0 0-2.305 0L1.792 14.57a1.33 1.33 0 0 0 1.153 1.992h14.111a1.33 1.33 0 0 0 1.152-1.992z",clipRule:"evenodd"})),f||(f=a.createElement("path",{fill:"#FFA726",fillRule:"evenodd",d:"M10.001 5.883c.38 0 .688.308.688.688v3.428a.687.687 0 1 1-1.376 0V6.571c0-.38.308-.688.688-.688m-.006 6.183H10q.034 0 .068.003c.443.038.849.4.849.914 0 .27-.122.496-.271.645A.92.92 0 0 1 10 13.9a.92.92 0 0 1-.917-.916.914.914 0 0 1 .908-.917z",clipRule:"evenodd"})))};var w,y;function k(){return k=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},k.apply(null,arguments)}const E=e=>{let{title:n,titleId:t,...r}=e;return a.createElement("svg",k({xmlns:"http://www.w3.org/2000/svg",width:18,height:18,fill:"none",viewBox:"0 0 18 18","aria-labelledby":t},r),n?a.createElement("title",{id:t},n):null,w||(w=a.createElement("path",{fill:"#00B68A",fillRule:"evenodd",d:"M5.58.743a8.937 8.937 0 1 1 6.84 16.514A8.937 8.937 0 0 1 5.58.743M9 1.438a7.562 7.562 0 1 0 0 15.124A7.562 7.562 0 0 0 9 1.437",clipRule:"evenodd"})),y||(y=a.createElement("path",{fill:"#00B68A",fillRule:"evenodd",d:"M12.664 6.31c.268.268.269.703 0 .972l-4.34 4.35a.69.69 0 0 1-1.087.151l-.018-.018L5.25 9.797a.688.688 0 1 1 .972-.972l1.481 1.481 3.987-3.995a.69.69 0 0 1 .973-.001",clipRule:"evenodd"})))};var O,C;function N(){return N=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},N.apply(null,arguments)}const S=e=>{let{title:n,titleId:t,...r}=e;return a.createElement("svg",N({xmlns:"http://www.w3.org/2000/svg",width:18,height:18,fill:"none",viewBox:"0 0 18 18","aria-labelledby":t},r),n?a.createElement("title",{id:t},n):null,O||(O=a.createElement("path",{fill:"#29B6F6",fillRule:"evenodd",d:"M9.45 4.966a.69.69 0 0 0-.587-.33.914.914 0 0 0-.917.917.92.92 0 0 0 .917.917c.27 0 .495-.122.645-.271a.92.92 0 0 0 .271-.646.69.69 0 0 0-.33-.587M7.396 12.208c0-.38.308-.687.687-.687h2.118a.687.687 0 1 1 0 1.375H8.083a.69.69 0 0 1-.687-.688",clipRule:"evenodd"})),C||(C=a.createElement("path",{fill:"#29B6F6",fillRule:"evenodd",d:"M5.58.743a8.937 8.937 0 1 1 6.84 16.514A8.937 8.937 0 0 1 5.58.743M9 1.438a7.562 7.562 0 1 0 0 15.124A7.562 7.562 0 0 0 9 1.437m-.495 4.479a.687.687 0 0 0 1.265-.373.91.91 0 0 0-.97-.905.687.687 0 0 0-.295 1.278m-1.1 2.396c0-.38.307-.688.687-.688h1.054c.38 0 .687.308.687.688v3.895a.687.687 0 1 1-1.375 0V9h-.366a.69.69 0 0 1-.688-.687",clipRule:"evenodd"})))};var B=function(e){return e.ERROR="error",e.WARNING="warning",e.INFO="info",e.SUCCESS="success",e.NEUTRAL="neutral",e}({});const P=({type:e="info",title:n,content:t,children:b})=>{const j=(0,r.A)({[o]:"error"==e,[i]:"warning"==e,[d]:"info"==e,[h]:"success"==e,[u]:"neutral"==e}),m={error:x,warning:v,info:S,success:E}[e];return a.createElement("div",{className:(0,r.A)([s,j,"alert"])},m&&a.createElement("div",null,a.createElement(m,{className:p})),a.createElement("div",null,n&&a.createElement("div",{className:l},n),a.createElement("div",{className:c},null!=t?t:b)))}},28453:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>c});var r=t(96540);const a={},s=r.createContext(a);function l(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.