diff --git a/404.html b/404.html index c0e5f41b5..e6a8653d4 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
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/advance-design-config/index.html b/advance-design-config/index.html index 903d6e105..c68bd232e 100644 --- a/advance-design-config/index.html +++ b/advance-design-config/index.html @@ -4,13 +4,13 @@ App UIs | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

App UIs

Design other UIs of your App easily and flexibly by drag&drop.

You can also configure to update your App’s UI without republishing app to App Store and Google Play.

App Templates

More than 30 app templates are available:

Logo on Login screen, Colors

Edit the Logo on Login screen: go to Features, select Theme Config, change the Theme Logo on the right panel:

Loading animation

Smart Engagement Banner

Display the Smart Engagement Banner on Home Screen.

A Smart Banner is a banner at the top of the screen that presents an option to download or open the app if the user chooses. Help your customers easily view an event, sale, or an important announce.

Product Horizontal

Add the Horizontal Products on Homepage of app:

Testimonial

Add the Testimonial Review on Homepage of your app. Help customers trust you:

Instagram

Show the Instagram on your app’s Homepage:

Story slider

Show stories on your app’s Homepage:

Web Embed

Flexible to Add new layout Web embeds into the Dynamic layout on Homepage. Users can set URL, iFrame or embedded HTML code.

TabBar

Edit the Tabbar of your app:

AppBar

Add the AppBar to your app:

Left menu (Side menu)

Edit the Side menu of your app:

- - + + \ No newline at end of file diff --git a/advertisements/index.html b/advertisements/index.html index 5bc42a7bd..a8cae7f10 100644 --- a/advertisements/index.html +++ b/advertisements/index.html @@ -4,13 +4,13 @@ Advertisements | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Advertisements

Google AdMob and Facebook Ads are available on the app. Let's check out the way to configure them.

1. App Tracking Transparency

The App Tracking Transparency is supported to allow you to display iOS 14+ tracking authorization dialog and request permission to collect data. Collected data is crucial for ad networks to work efficiently on ios 14+ devices. This also prevents your app from being rejected by App Store by violating Legal - Privacy - Data Use and Sharing session.


2. Google AdMob

1. Setup Google AdMob app and Ad Units

  • Because Flutter is a multi-platform SDK, you need to add an app and ad units for both Android and iOS in AdMob.

Step 1: In AdMob Console, create a new Android App.

Note: If you choose Yes when being asked Is the app listed on a supported app store?__, your advertisement setup must be reviewed and approved before being available to use.

Step 2: Create Ad Units (Banner, Reward, Interstitial, and Native)

Step 3: Repeat Step 1 and Step 2 to create iOS App and Ad units for iOS App.

2. Setup Google AdMob on App

Step 1: Open FluxBuilder, choose Features > Advertisement > Enable Advertisement and start adding your first Ads by clicking on ADD NEW ITEM.

  • Each Ad item including:
  • Type which could be BannerRewardInterstitial or Native
  • A Provider should beGoogle
  • An Android ID which could be obtained from Step 2, session 2 - Google Admob depending on its Type
  • An iOS ID which you could obtain from Step 10, session 3 - Facebook Ads depending on its Type
  • Delay time to show  to control the delayed time of an Ads to be shown, in second.
  • Multiple Screens that you want to display your Ads on

Step 2: Click on Update to update your Advertisement Config


3. Facebook Ads

Requirements:

  • Payment Information on Facebook Developer must be completed.
  • Your app needs Facebook Approval.
  • You can test your app even if it hasn't been published on Google Play/ App Store yet thanks to testingID that we supported. However, keep in mind that you need to update your information at Google Developer when you released your app in order to continue using this feature.
tip

Note: You might see different illustrations compared with the below instructions because of different versions in Facebook Developer Console by the time these documents were written.

Step 1: Integrate your app in Facebook Developer Console

Step 2: In Dashboard, click on Setup Audience Network and fill out all of the necessary information:

Step 3: When you finish to register your Audience Network information, click Go to Monetization Manager

Step 4: Select the platform you want to implement your Ads on. Let's say Android, then click + Add

Step 5: Declare your app information whether your app has been released on Google Play / App Store or not.

Step 6: Select your first placement, then choose the type of ads placement.

tip

Currently, the placements supported are Banner, Interstitial, Native, and Reward. Remember to create those placements when you finish Add Android / iOS App

Step 7: At Confirm Audience Network SDK Integration step, check The Audience Network SDK has been integrated into my app and click Confirm Manually

Step 8: At Enter your business payment account information step, click Add payment account and finish your payment registration.

Step 9: Go back to Facebook Monetization Manager home page, click on Integration > Properties on the left-hand side menu bar and select your project property > Ad Space Property.

Step 10: Successfully creating Banner, Native, Reward and Interstitial Placement Ads would lead to the result as below. Click on Copy ID at the end of each Ad Placement and save those values for later uses.

Step 11: Repeat from step 4 to step 10 to create placements for iOS platform, and to create 4 types of placement just like Android (Banner, Interstitial, Native, and Reward). After that, click on Copy ID at the end of each Ad Placement and save those values for later uses.

4. Add a new Ads

Below is an example of adding a Banner Google AdMob into Home screen:

Step 1: Open FluxBuilder, choose Features > AdvertisementEnable Advertisement and start adding your first Ads by clicking on ADD NEW ITEM.

Each Ad item including:

  • Type which could be BannerRewardInterstitial or Native
  • A Provider which could be Facebook or Google
  • An Android ID which could be obtained from Step 2, session 2 - Google Admob depending on its Type
  • An iOS ID which you could obtain from Step 10, session 3 - Facebook Ads depending on its Type
  • Delay time to show  to control the delayed time of an Ads to be shown, in second.
  • Multiple Screens that you want to display your Ads on

Step 2: Click on UPDATE to update your Advertisement Config.

That’s all 🙂

- - + + \ No newline at end of file diff --git a/agency-build-on-cloud/index.html b/agency-build-on-cloud/index.html index 4fbdd164c..d8f905081 100644 --- a/agency-build-on-cloud/index.html +++ b/agency-build-on-cloud/index.html @@ -4,13 +4,13 @@ Build On Cloud | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Build On Cloud

tip

This Build On Cloud feature allows you (Agency) to build Apps for your customers from the Admin page.

This is useful in cases where some customers do not want to build the application themselves. They just want to design an application, then need an Agency to create the application for them.

Video Guide

Manual Guide

Manage Build from the Admin Page

Agencies manage all app builds from the Admin page. The Status of the build will change after the process of build has finished.

Follow the steps below to manage and submit build from the Admin Page:

Step 1: Login to your Admin page (as this “2. Admin page guideline” guide)

Step 2: Open [Build on Cloud] on the side menu. Here, you will see all active products which can be submitted build.

Step 3: Click the Build icon on each product to open Build screen of the product.

  • Step 4: Follow this Guide to submit Build apps. That’s all!

Select Git Repository dropdownlist: you can leave it as Default to build apps from our source code. Select other values if you have a customized source code and add your own Git (refer to this Guide).

Enable Build Feature on App Builder

Admins have the ability to enable or disable the Build feature on the App Builder page which allows users to build apps by themselves.

This can be done by adjusting the relevant settings in the Admin page as below.

Step 1: Go to [Settings] on the side menu and open [App Builder Config]

Step 2: Scroll down to [Advance Settings] and enable [Allow Customer to Submit Build]

info

When the "Allow Customer to Submit Build" option is disabled, the Build feature will be hidden in the App Builder.

Step 3: Click the Update App Config button. That’s all.

- - + + \ No newline at end of file diff --git a/agency-customers/index.html b/agency-customers/index.html index 1a47f0354..a245a5956 100644 --- a/agency-customers/index.html +++ b/agency-customers/index.html @@ -4,15 +4,15 @@ Customers | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Customers

tip

In this section, you have the ability to create accounts for your customers, enabling them to log in to your App Builder and design and build their own apps. Additionally, you can add or create products/apps on behalf of your customers.

Video Guide

Manual Guide

Create Accounts for your Customers

  1. Login to your Admin page (refer to Introduction)
  2. Open Customers on the side menu
  3. On the right-hand side, select Customer +
  4. Input Email, Name (required) and other information if needed.
  5. Click Create Customer

After creating, your customers will receive an email with their new account email and password. While using your App Builder, customers can edit their information (except the registered email).

Add Apps for Customers

After creating new customers, the agency can help them to create new products by one of the 2 ways below:

  • Clicking on the Product + button beside the Customer +
  • Pointing on the customer and click + button.

On the Product screen:

  • While adding app/product for customers, please check the USER EMAIL (required) to be correct.
  • PREVIEW MODE: In case your customer want to use your app builder before subscribe, turn on the preview mode. Your customer can edit the app, but he can not save or build app. In case your customer has subscribed, turn off the Preview Mode option so that your customer can edit, save, and build the app by himself.
  • Make sure the Website URL is correct and connected successfully.
  • DESIGN CONFIG: If you would like to use your own app UI, click the Update button and refer to your config JSON file. Ignore it if you want to use the default UI templates.
  • Run Troubleshoot to check the website connectivity. If you get the failed result, click the Failed button to see the solution.
  • Click Create Product to finish.

Others

  • The agency can remove any customer by pointing on that customer, and click the Delete button.
  • Click the View Product button to see and manage all the products/apps of the selected customer.
- - + + \ No newline at end of file diff --git a/agency-developer/index.html b/agency-developer/index.html index 6a98661d5..890be85c9 100644 --- a/agency-developer/index.html +++ b/agency-developer/index.html @@ -4,13 +4,13 @@ Developer | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Developer

Overview

The guide provides a suite of simple and flexible API endpoints to add or remove data on your products, and customers.

Please note that, at present, the guide primarily focuses on assisting developers in executing the essential steps efficiently.

API Authentication

All Agency API calls require authentication by passing both of the following parameters:

  • agency_id: found at Admin page > Settings > Developer
  • agency_auth_code: can be generated at Admin page > Settings > Developer

Product API

  1. Create Product

POST https://api-partners.vercel.app/api/product

  • Body

    • agency_id: The agency ID identifies your account. This can be found in Admin > Settings > Developer.

    • agency_auth_code: The agency auth code is a private API key for authenticating API requests. This key should never be used in client side code or shared publicly. This can be found in Admin > Settings > Developer.

    • email: User email address

    • preview_mode: User can edit the app’s UI and features but cannot build apps when value is true. Allowed values: true, false . Default: false

    • product_type: Type of application. Leaving empty will apply all values. These are the allowed values: fluxstore_woo, fluxstore_shopify, fluxstore_pro, fluxstore_prestashop, fluxstore_strapi, fluxnews, fluxstore_mv, fluxlisting, fluxstore_notion, fluxstore_bigcommerce, fluxstore_manager, fluxstore_delivery, fluxgpt.

    • server_config: The default server config. Allowed values: Object for each product_type

      • fluxstore_woo : url, consumer_key, consumer_secret
      • fluxstore_pro : url, consumer_key, consumer_secret, access_token, platform [woo, opencart, magento]
      • fluxstore_mv : url, consumer_key, consumer_secret, platform [wcfm, dokan],
      • fluxnews : url
      • fluxstore_shopify : url, access_token
      • fluxlisting : url, consumer_key, consumer_secret, platform [listeo, listpro, mylisting]
      • fluxstore_bigcommerce : url_store, store_hash, token, url_generator_token
      • fluxstore_notion : token, product, customer, category, order, appconfig
      • fluxstore_prestashop : url, key
      • fluxstore_strapi : url
      • fluxstore_manager : url, consumer_key, consumer_secret, platform [woo, wcfm, dokan]
      • fluxstore_delivery : url, consumer_key, consumer_secret, platform [woo, wcfm, dokan]
      • fluxgpt : url, supabase_url, supabase_anon_key

      Example for fluxstore_mv:

    ```javascript
{
"url": "https://inspireui.com",
"consumer_key": "ck_c16d601d14a44c8080418c1ab9336b72ae8faff2",
"consumer_secret": "cs_1c11c4d0ee3bef861421bf3622f20f6b49c8497a",
"platform": "dokan"
}
```


`fluxstore_woo`: FluxStore WooCommerce


`fluxstore_pro`: FluxStore Pro


`fluxstore_mv`: FluxStore Multi Vendor


`fluxnews`: FluxNews


`fluxstore_shopify`: FluxStore Shopify


`fluxlisting`: FluxListing


`fluxstore_bigcommerce`: FluxStore Bigcommerce


`fluxstore_notion`: FluxStore Notion


`fluxstore_prestashop`: FluxStore Prestashop


`fluxstore_strapi`: FluxStore Strapi


`fluxstore_manager`: FluxStore Manager


`fluxstore_delivery`: FluxStore Delivery


`fluxgpt`: FluxGPT
  • Example Response

    {
    "success": true,
    "response": {
    "id": "ae4fe82b-def4-49c2-a1fa-a1f2f62f1940",
    "created_at": "2024-04-23T10:00:31.184021+00:00",
    "agency_id": "e597cdb9-0c9c-4d8c-96c3-c92b34d06f81",
    "customer_id": "9749b7aa-1b93-4da9-89b7-ceffe149bf22",
    "key": "096f1588-b046-459b-a2aa-72c8ad61b240",
    "preview_mode": false,
    "grid": false,
    "product_type": "fluxstore_woo"
    }
    }
  1. Delete Product

POST https://api-partners.vercel.app/api/product/delete

  • Body

    • agency_id: The agency ID identifies your account. This can be found in Admin > Settings > Developer.
    • agency_auth_code: The agency auth code is a private API key for authenticating API requests. This key should never be used in client side code or shared publicly. This can be found in Admin > Settings > Developer.
    • id: The product id
  • Example Response

    {
    "success": true
    }

User API

  1. Create User

POST https://api-partners.vercel.app/api/user

  • Body

    • agency_id: The agency ID identifies your account. This can be found in Admin > Settings > Developer.
    • agency_auth_code: The agency auth code is a private API key for authenticating API requests. This key should never be used in client side code or shared publicly. This can be found in Admin > Settings > Developer.
    • email: The new user email address
    • name: The user name
    • phone: The user phone number
  • Example Response

    {
    "success": true,
    "response": {
    "id": "ae4fe82b-def4-49c2-a1fa-a1f2f62f1940",
    "created_at": "2024-04-23T10:00:31.184021+00:00",
    "agency_id": "e597cdb9-0c9c-4d8c-96c3-c92b34d06f81",
    "customer_id": "9749b7aa-1b93-4da9-89b7-ceffe149bf22",
    "key": "096f1588-b046-459b-a2aa-72c8ad61b240",
    "preview_mode": false,
    "grid": false,
    "product_type": "fluxstore_woo"
    }
    }
  1. Delete User

POST https://api-partners.vercel.app/api/user/delete

  • Body

    • agency_id: The agency ID identifies your account. This can be found in Admin > Settings > Developer.
    • agency_auth_code: The agency auth code is a private API key for authenticating API requests. This key should never be used in client side code or shared publicly. This can be found in Admin > Settings > Developer.
    • email: User email address
  • Example Response

    {
    "success": true
    }
- - + + \ No newline at end of file diff --git a/agency-git-repository/index.html b/agency-git-repository/index.html index 56a64ff24..71fd9bb22 100644 --- a/agency-git-repository/index.html +++ b/agency-git-repository/index.html @@ -4,13 +4,13 @@ Git Repository ⚡️ | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Git Repository ⚡️

tip

Besides building from our default source code, you can upload your customized source code (your own Git Repositories) on the Admin page, so that customers can auto-build apps for that source code.

Obviously, your Git Repositories should be based on our apps to make sure that apps are built successfully.

Video Guide

Manual Guide

Create Git Repository

To get starting your Git Repository, you should push your new or existing code to GitHub.

Refer to this Guide.

Prepare Git Authentication

Follow the steps below to create your personal access token:

  • Go to GitHub and login to your account

  • In the upper right corner, click your Profile image, select Settings

  • In the left sidebar, click <> Developer settings

  • In the left sidebar, click Personal access tokens

    In case your GitHub dropdown some options for Personal access tokens, make sure to select Tokens (classic)

  • Click Generate new token
  • Input a short Note
  • Select Expiration for your Git
  • Select the scopes you'd like to grant this token. Recommend repo option

  • Click Generate token
  • Copy the generated token and save to your local

Configuration

After pushing your code to GitHub, follow these steps to add your Git to the Admin Page:

  1. On Admin Page, login to your Agency account

  2. Go to Git Repository

  3. Click Add Git +

  4. Input all fields (required), then click Create Git.

    You can point on the ⓘ to see the short description of the field.

- - + + \ No newline at end of file diff --git a/agency-mail-settings/index.html b/agency-mail-settings/index.html index ef92d07e0..14c24e860 100644 --- a/agency-mail-settings/index.html +++ b/agency-mail-settings/index.html @@ -4,15 +4,15 @@ Mail Settings | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Mail Settings

tip

Your customers will receive emails from the step of creating an account until the final app build. In Mail Settings, you can customize the email information to reflect your brand, removing any mention of FluxBuilder or InspireUI. This white-label solution ensures that users quickly identify the emails as originating from your business.

Video guide:

Manual guide:

Go to your Admin page (refer to Introduction). On the left menu, select Mail Settings

1. Sender Information

Configure this screen to display the Logo image and some information of your business in the Footer position of the email, including:

  • Logo URL: input the Logo image link to show the Logo Image in the email.
  • Contact Support URL: input the link to your Support page. When customers click on the "Contact Support" button in the failed build email, they will be redirected directly to this page.
  • Footer About URL: input the link to the page containing your business information.
  • Footer Support Policy URL: input the link to the page containing your Support Policies.
  • Footer Privacy Policy URL: input the link to the page containing your Privacy Policy.
  • Footer Slogan: provide a brief description of the business.
  • Footer Social (Optional): add the links to the sender's social media profiles, such as Facebook, Twitter, and LinkedIn, etc.
  • Click the [Update Sender] button to save.

Footer Social (Optional)

A successful build email with Sender Information

2. Sender Auth

Sender Authentication is an optional configuration.

In case the Agency do not edit the Sender Auth, the build result email will be sent to customers under the default email noreply.appbuilder@gmail.com as this image:

Agency can edit the Sender Auth to change the account in the email to their own email:

tip

Sender Auth require using SMTP Transport. SMTP is also the protocol used between different email hosts, so it’s truly universal. Almost every email delivery providers support SMTP based sending, even if they mainly push their API based sending.

On the Sender Auth screen, the agency is required to fill in all fields as below:

  • Service: select the Service of their email.
  • SMTP User: input the email of the admin which belongs to the selected Service
  • SMTP Pass: input the SMTP password of their Service. To get the SMTP, the agency should refer to their Service guide.
  • From: Input the Sender name with email as this format: sender name <email>
  • Click the [Update] button to save.

caution

Important Note: If the Sender Auth is invalid, there will be no email sent to customers. Thus, it is important to do [SEND A MAIL] to check the Sender Auth.

After creating the Sender Auth successfully, you should send the first email to check if the email will be sent successfully with the correct information:

  1. Click the SEND A MAIL button on the Sender Auth screen
  2. Input the recipient's email, Subject, and Content of the email
  3. Click the Send button
  4. Check the Response log to make sure your email has been sent successfully
  5. Open the receipt email in the Recipient email.

Successful Response for a valid Sender Auth

Unsuccessful Response for an in-valid Sender Auth

- - + + \ No newline at end of file diff --git a/agency-products/index.html b/agency-products/index.html index 3534f7bc0..db9f97585 100644 --- a/agency-products/index.html +++ b/agency-products/index.html @@ -4,14 +4,14 @@ Products | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Products

tip

This guide shows the way to display your Product Templates on your App Builder, so that users can see your Product Templates, open to preview, enjoy, and change the design/UI without saving. It is helpful for users to experience before subscribing.

It will show like this on your App Builder:

Video Guide

Manual Guide

Follow these steps to show your Product Templates on your App Builder:

Step 1. Add Products

  • Click [Product +] button to add a new product and configure as below:

  • Product Title: enter your product name (ex: Listing App).
  • Description: give short interesting information lines about the app.

Under the App Type & Image,

  • Application: select an available FluxStore app, then your product will be the same with that app, but with your product title.
  • Cover Image: click the Edit icon to upload an image for your product.

  • JSON Format: click the Update button to upload your app UI which is config JSON file (config_xx.json)

  • Feature Config: click the Update button to upload your app features env.dart file.

  • Then, click the Create Product button to create your product successfully.

Step 2. Config to show Products on your App Builder

Follow this step to show your added Products on your App Builder, like this:

On Admin page, go to Settings and select OnBoarding item:

  • Enable option: Turn it on to show your Product Templates on your App Builder.
  • Label field: enter a title for the list of products, e.g. “Flutter Apps”
  • Wrap Layout option: turn it on to display full of your Products on one page. Turn it off to show your products in one line, users can scroll horizontally on the list to see the rest.

Then click the Update Product Settings button to save the setup.

It’s done :) Login to your App Builder to see the result.

Others

  • The created products can be edited and removed. Point on the product and click the Edit button or Delete button.
  • You can sort out the products by clicking Filter and select any option to show products of the selected App Type.
  • Select Refresh button next to Filter button to reload all Products
- - + + \ No newline at end of file diff --git a/agency-settings/index.html b/agency-settings/index.html index 3e5f4e82e..0125c7206 100644 --- a/agency-settings/index.html +++ b/agency-settings/index.html @@ -4,8 +4,8 @@ Settings | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
@@ -13,7 +13,7 @@

3. Features

Ability to show or hide some special features of apps. These features show in the Features section on your App Builder. By default, all available features will display.

4. Payment Images

You can allow or disallow users from editing the image of payment methods in mobile apps.

(Show or hide items on Features > Cart & Checkout > Payment Images screen in your App Builder).

5. Product Display

Flexible option to edit the name and logo of clients’ Apps on the Dashboard screen of your App Builder.

6. Tools

This part helps to create the White-label MStore API.

As your experience with FluxStore apps, you will know MStore API plugin which supports most of the app Features. If you want to create your own API from the MStore API (change the “MStore API” name into your own API name), you can:

  1. Go to Settings > Tools.
  2. Enter string to Plugin Name and click Generate Plugin to get it.

7. Languages

8. Billing

Instead of opening FluxBuilder to manage your subscription, you can open Billing to do that.

Click the Cancel button on Billing screen to discard the next payment. You will have access to your subscription until the end of the current billing cycle. After that, your apps will be locked until you reactivate your plan.

- - + + \ No newline at end of file diff --git a/agency-templates/index.html b/agency-templates/index.html index 4ed1834c1..5dd576b82 100644 --- a/agency-templates/index.html +++ b/agency-templates/index.html @@ -4,15 +4,15 @@ Templates ⚡️ | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Templates ⚡️

tip

This guide shows the way to display your UI Templates on your App Builder, so that users can see your UI Templates and easily select the most suitable designs for their apps, eliminating the need to create one from scratch.

It will show like this on your App Builder:

Agencies can efficiently utilize pre-existing templates from FluxBuilder or upload their own App UI templates to share with their customers on the App Builder page. See the guide below:

Video Guide

Manual Guide

There are 2 ways to create your own UI Templates:

  1. Import Template: efficiently utilize pre-existing templates from FluxBuilder.
  2. Add Template: upload your own App UI templates.

1. Import Templates

Step 1: Login to your Admin page (as this “2. Admin page guideline” guide)

Step 2: On the side menu, click the Templates item, then select the Import Template button.

Step 3: select one or multiple templates to import (click and hold Ctrl / Command key to select multiple templates).

Then click the bottom [Import Template] button to finish.

info

There is an Application tag on each existing template for you to actively select the correct one.

Step 4: Go to [Settings] on the side menu and open [App Builder Config]

Step 5: Scroll down to Advance Settings, and then upload your logo image to [Preview Logo]

Step 6: Click the [Update App Config] button. It’s done :)

2. Add Templates

Step 1: Login to your Admin page (as this “2. Admin page guideline” guide).

Step 2: Open [Templates] on the side menu.

Step 3: Click [Add Template +] button, then add your new template:

  • Input Title. When users click on the template, it will be displayed under the App Type.
  • Select the Application: FluxStore, FluxNews, FluxListing.
  • Upload the Cover Image to display a first Preview for users about the template.
  • Upload Design Config config_xx.json in accordance with the Cover Image by clicking Update.
  • Click the [Add Template +] button to finish. It’s done.

Your UI Templates will show like this on your App Builder:

Others

After adding or importing templates, you can edit or remove them by pointing out the template and clicking on the displaying Edit or Delete button.

- - + + \ No newline at end of file diff --git a/agency/index.html b/agency/index.html index 7b5fbccf6..83498410f 100644 --- a/agency/index.html +++ b/agency/index.html @@ -4,8 +4,8 @@ Introduction | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
@@ -15,7 +15,7 @@ For the next month, the fee will be $200 + ($25*the number of apps you've built).

If you want to build Unlimited Apps, experience with the Diamond Agency plan ($2000/month) by emailing hi@inspireui.com to set a call.

If using the Web version: after login (sign up with your email for free), click the Down icon > click the Register as an Agency item:

After subscribed successfully, re-open the FluxBuilder. Go to Settings , select Upgrade FluxBuilder Agencies , you will see this screen:

Now you can setup your App Builder Name, Main Color.

2. Admin page guideline

The Admin page is the page for Agency to work. To go to the Admin page:

On the FluxBuilder, go to Settings, select Upgrade FluxBuilder Agencies , and click OPEN ADMIN

The Admin page will display. Login with your FluxBuilder account.

note

You can save the link for quickly opening on a browser to get started. If the end of the link is “/admin”, it is the Admin page. Without “/admin”, it is the App Builder page. You can send this link for your customers. We also support to change domain to your brand.

3. App Builder guideline

The App Builder page is the page for your customers to work (It is Your Own App Builder). To go to the App Builder page:

On the FluxBuilder, go to Settings, select Upgrade FluxBuilder Agencies , and click OPEN

The App Builder page will display. Login with the account that Agency creates (refer to the Customers guide).

note

You can save the link for quickly opening on a browser to get started. Add “/admin” to the end of the link to open the Admin page. Without “/admin”, it is the App Builder page. You can send this link for your customers. We also support to change domain to your brand.

4. Frequently asked questions

How to subscribe the FluxBuilder Agencies plan?

This is the guide to subscribe FluxBuilder Agencies plan step by step https://docs.fluxbuilder.com/agency/

Do I need to purchase FluxStore apps when using FluxBuilder Agencies?

No, you don’t need to purchase any apps.

Can I cancel my FluxBuilder Agencies plan at any time?

Yes, you can cancel the FluxBuilder Agencies Plan at any time. Your own app builder still work normally until the end of your current billing cycle. After that, your apps will be locked until you reactivate your plan.

Can I use My Own App Builder when the plan expires?

When the period of your FluxBuilder Agencies Plan expires, you can customize your own app builder, but you and your clients can not auto-build the app.

Where do I post support tickets regarding FluxBuilder Agencies issues?

Please email to support@inspireui.com

- - + + \ No newline at end of file diff --git a/ajax-search-pro/index.html b/ajax-search-pro/index.html index 827e87679..be7727dbe 100644 --- a/ajax-search-pro/index.html +++ b/ajax-search-pro/index.html @@ -4,13 +4,13 @@ Ajax Search Pro | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

Ajax Search Pro

The Ajax Search will be integrated with WooCommerce, and MultiVendor apps.

To have the feature on the app, please follow these steps:

  1. You need to install and activate the Ajax Search Pro plugin for your website.
  2. Next, go to the "Compatibility & Other Settings" page of the Ajax Search Pro plugin. You can find this page by navigating to "Ajax Search Pro" in your WordPress dashboard, and then clicking on "Compatibility & Other Settings".
  3. In the "Compatibility & Other Settings" page, click on the "Other" tab.
  4. Make sure that the "Enable REST API" checkbox is checked.
  5. Click on the "Save options" button at the bottom of the page to save your changes.

Then follow the 2 steps below:

1. Update your App

Using FluxBuilder: go to Features, select Search Product, enable Enable Ajax Search Pro plugin, then fill in the Ajax Search URL:

https://your-domain/wp-json/ajax-search-pro/v0/woo_search?s=

2. Update functions.php

Please go to the hosting control panel, and edit the functions.php file in the Theme folder to enable the search function from the API.

function asp_custom_rest_handler( $data ) {
$id = -2;
$defaults = $args = array(
's' => ''
);
foreach ( $defaults as $k => $v ) {
$param = $data->get_param($k);
if ( $param !== null ) {
$args[$k] = $param;
}
}

// Fetch the search ID, which is probably the WooCommerce search
foreach ( wd_asp()->instances->get() as $instance ) {
if ( in_array('product', $instance['data']['customtypes'] ) ) {
$id = $instance['id'];
break;
}
}

// No search was found with products enabled, set it explicitly
if ( $id == -2 ) {
$args['post_type'] = array('product');
}

$asp_query = new ASP_Query($args, $id);
return $asp_query->posts;
}

// POST to: http://example.com/wp-json/ajax-search-pro/v1/woo_search
add_action( 'rest_api_init', function () {
register_rest_route('ajax-search-pro/v0', '/woo_search', array(
'methods' => 'POST',
'callback' => 'asp_custom_rest_handler',
));
});

Check the API Search function is available when returning as the JSON, for example: [https://your-hosting.com]/wp-json/ajax-search-pro/v0/woo_search?s=[text]

3. Common search issues:

💊 Result page loop issues

With the Ajax Search Pro plugin, the default search query returns 10 search results. To retrieve all search results, you need to edit the plugin to return all results.

Please log in to your website as an administrator and set the limit for the returned product results to the desired value, for example: 100

💊 Filter not working with ASP -  If you use Ajax search, it can't apply the filter when loading the product

💊 The search product results cannot load images

The issue arises from not specifying a search ID, leading to the default route being utilized, where images are not parsed by default. Please log in to your website as an administrator and create a search instance configured specifically for product searches.

- - + + \ No newline at end of file diff --git a/app-activation/index.html b/app-activation/index.html index 0d67fbd40..d24329b15 100644 --- a/app-activation/index.html +++ b/app-activation/index.html @@ -4,15 +4,15 @@ App Activation | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
Skip to main content

App Activation

This guide shows you how to create app after subscribing successfully from website https://fluxbuilder.com or any webpages, and how to move your app to the subscribed plan.

1. How to create app after Subscribing?

If you subscribed a plan successfully from official website https://fluxbuilder.com or any webpage, please follow these steps below to create your app:

Video guide

Manual guide

Step 1 - Download FluxBuilder.

Step 2 - Sign up to FluxBuilder with your email that you have subscribed the plan.

Then login (If you have logged in to FluxBuilder, sign out and login again ).

Step 3 - You will see this “Flutter Application” button (or “Get Started with Sumo” button), click on it:

Step 4 - App Information

Input the App Information as below:

  • App Name (required): input the name of your App/
  • App Category (required): select the field of the App.
  • Short Description (optional): input basic information about the app.
  • Upload Logo (optional): upload the logo of App in both Light Theme and Dark Theme. It can be changed later.

Step 5 - Server Integration

Input your Website URL or IP address of the HOSTING service (e.g. https://1.100.67.68), select your website Framework, input API Keys/Access Token (if any), then click Run Troubleshoot

If getting failed, please click ? icon at the end of the Failed Message to see the solution:

Step 6 - Select a template


Step 7 - Choose Color and Font

These settings can also be edited later. Now, click CREATE APP to start your journey.


2. Common issues and Solutions

  • If you see a failed message after clicking on Run Troubleshoot, please click on the failed button to view the solution. Alternatively, you can check the solutions listed below:

    Failed item🚨Solution ✅
    Make sure you do not input sub-folder domain like this https://yaari.store/pk-en. Please change to subdomain or main domain
    Make sure you input https instead of http
    SSL VerificationPlease select Run Troubleshoot again or Ignore it.
    Permalink SettingCheck your backend to see if it works https://your website/wp-json/wc/v2/products?consumer_key=your ck key&consumer_secret=your cs key
    CS & CK AuthorizationPlease input your Consumer Key and Consumer Secret, following this guide.
    CS & CK ValidationMake sure you have inputted the correct Consumer Key and Consumer Secret, , following this guide.
    WooCommerce ConnectivityYour REST APIs are not enabled on your website, please follow this guide.
    PrestaShop ConnectivityIt could be missing the PrestaShop plugin/API on your site. Please follow this guide.
    Magento ConnectivityYou could install this extension to active the API integrate with the app following this guide.
    WCFM ConnectivityMissing WCFM Rest API. Please install WCFM Rest API plugin to solve it.
    Dokan ConnectivityMissing Dokan Rest API. Please install Dokan Rest API plugin to solve it.
    Opencart ConnectivityYou could install this extension to active the API integrate with the app following this guide.
    Listing ConnectivityYour REST APIs are not enabled on your website, please follow Setup Rest API
    Shopify ConnectivityPlease insert "https://" before your website URL https://tppr.me/gJY9G
    Post ConnectivityPlease check if you install any strange plugins that needing the permission to access
  • Cannot see any Images, Products, or Categories, use this solution.

  • App loads slowly, also use this solution.

note

If you see images have non-good resolution on FluxBuilder, don't worry, we downgrade the resolution of images to improve the speed of FluxBuilder. After building, the app loads images with high resolution smoothly on the real device.


3. Install API on your Website

Make sure to install the required API below into your website. It helps to display full products and images of your website on iOS & Android apps, and sync with your data/website:


4. How to move your app to the Subscribed plan?

If you have created an app on FluxBuilder and now want to move that app to the subscribed plan, follow these steps:

Step 1 - Open your old app, and export all changes.

Step 2 - Create a new app for your subscription plan following the guide above "1. How to create app after subscribing?" Then import all files you have exported from step 1.

Step 3 - Now you can delete your old app.

That's all 🙂


- - + + \ No newline at end of file diff --git a/app-performance/index.html b/app-performance/index.html index f47cd2c71..66b588ca2 100644 --- a/app-performance/index.html +++ b/app-performance/index.html @@ -4,8 +4,8 @@ App Performance | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
@@ -14,7 +14,7 @@ Go to Wordpress dashboard, select MStore Api menu and upload the config file config_xx.json which you get from Export from your App on FluxBuilder. Then make sure to clean up the Wordpress Rest API cache - https://tppr.me/wdK1I
  • Step 3: Enable MStore API option in one of the 2 ways below: open your app on the FluxBuilder, go to Features → go to General→ open App Performance and enable the MStore-API Caching. Then rebuild the app and enjoy the new Super-Speed app.
  • tip

    Note:

    • This is also great solution if you would like to change the app UI without resubmit to App stores, by reupload the config_xx.json file to MStore API.

    • It will automatically flush the caches if (some of) its products contents are edited.

    • Default setting is to disable the MStore-API Caching__, so you need to enable it after activating the plugin and upload the config_xx.json file to the MStore API.

    • The latest MStore API is also supporting multi caching per languages, you could go to the mstore-api and upload multi config files - https://tppr.me/bLr2Z

    - - + + \ No newline at end of file diff --git a/app-translation/index.html b/app-translation/index.html index de9a53ff3..ed328fd08 100644 --- a/app-translation/index.html +++ b/app-translation/index.html @@ -4,13 +4,13 @@ App Translation | Document - FluxBuilder - An Ultimate Approach For Flutter Mobile Apps - - + +
    Skip to main content
    - - + + \ No newline at end of file diff --git a/assets/images/design-app-branding.1b5e8f3b-0b8f-463e-9834-1a1f05463644-f4f94c401540a693440f807b2092aa76.png b/assets/images/design-app-branding.1b5e8f3b-0b8f-463e-9834-1a1f05463644-f4f94c401540a693440f807b2092aa76.png new file mode 100644 index 000000000..f05b1f31c Binary files /dev/null and b/assets/images/design-app-branding.1b5e8f3b-0b8f-463e-9834-1a1f05463644-f4f94c401540a693440f807b2092aa76.png differ diff --git a/assets/images/design-app-branding.5457a560-1088-4f8e-a8aa-27c3d07251f2-2fe665a040d26b7881dfd3cc8dc39919.png b/assets/images/design-app-branding.5457a560-1088-4f8e-a8aa-27c3d07251f2-2fe665a040d26b7881dfd3cc8dc39919.png new file mode 100644 index 000000000..0056167b4 Binary files /dev/null and b/assets/images/design-app-branding.5457a560-1088-4f8e-a8aa-27c3d07251f2-2fe665a040d26b7881dfd3cc8dc39919.png differ diff --git a/assets/images/design-app-branding.5aac044a-0acc-4ef5-93af-0c4d5b54e4c3-c487900fdf5a16e18d4b40b7f18b9b0d.webp b/assets/images/design-app-branding.5aac044a-0acc-4ef5-93af-0c4d5b54e4c3-c487900fdf5a16e18d4b40b7f18b9b0d.webp new file mode 100644 index 000000000..f91b04167 Binary files /dev/null and b/assets/images/design-app-branding.5aac044a-0acc-4ef5-93af-0c4d5b54e4c3-c487900fdf5a16e18d4b40b7f18b9b0d.webp differ diff --git a/assets/images/design-app-branding.bc5f2e83-08d5-4fbf-a780-4de627837243-63e05b6c4f751eb3c02c472eafd233d8.webp b/assets/images/design-app-branding.bc5f2e83-08d5-4fbf-a780-4de627837243-63e05b6c4f751eb3c02c472eafd233d8.webp new file mode 100644 index 000000000..7fc236d9d Binary files /dev/null and b/assets/images/design-app-branding.bc5f2e83-08d5-4fbf-a780-4de627837243-63e05b6c4f751eb3c02c472eafd233d8.webp differ diff --git a/assets/images/openai-subscription.05e05910-03b0-4fca-bbba-1feb853dc5fb-0108bff7e9eb4e076de1219c12ad832f.png b/assets/images/openai-subscription.05e05910-03b0-4fca-bbba-1feb853dc5fb-0108bff7e9eb4e076de1219c12ad832f.png deleted file mode 100644 index d5309116d..000000000 Binary files a/assets/images/openai-subscription.05e05910-03b0-4fca-bbba-1feb853dc5fb-0108bff7e9eb4e076de1219c12ad832f.png and /dev/null differ diff --git a/assets/images/openai-subscription.05e05910-03b0-4fca-bbba-1feb853dc5fb-6a7b438c25235a9e7d5ee2a029a4f982.png b/assets/images/openai-subscription.05e05910-03b0-4fca-bbba-1feb853dc5fb-6a7b438c25235a9e7d5ee2a029a4f982.png new file mode 100644 index 000000000..5a86a908c Binary files /dev/null and b/assets/images/openai-subscription.05e05910-03b0-4fca-bbba-1feb853dc5fb-6a7b438c25235a9e7d5ee2a029a4f982.png differ diff --git a/assets/images/openai-subscription.2b84e368-8018-425c-af7e-6d590873aeb9-25ef32e3ecea449e68d8d267a7b4468c.png b/assets/images/openai-subscription.2b84e368-8018-425c-af7e-6d590873aeb9-25ef32e3ecea449e68d8d267a7b4468c.png new file mode 100644 index 000000000..3f30afca8 Binary files /dev/null and b/assets/images/openai-subscription.2b84e368-8018-425c-af7e-6d590873aeb9-25ef32e3ecea449e68d8d267a7b4468c.png differ diff --git a/assets/images/openai-subscription.2b84e368-8018-425c-af7e-6d590873aeb9-f00846411f8bb988a13fcb0e10410619.png b/assets/images/openai-subscription.2b84e368-8018-425c-af7e-6d590873aeb9-f00846411f8bb988a13fcb0e10410619.png deleted file mode 100644 index c46e9b9b2..000000000 Binary files a/assets/images/openai-subscription.2b84e368-8018-425c-af7e-6d590873aeb9-f00846411f8bb988a13fcb0e10410619.png and /dev/null differ diff --git a/assets/images/openai-subscription.c4d47de1-9519-4592-bf67-c05f537bcffb-1ec48b466361e81c44e613e503a1df55.png b/assets/images/openai-subscription.c4d47de1-9519-4592-bf67-c05f537bcffb-1ec48b466361e81c44e613e503a1df55.png new file mode 100644 index 000000000..6994db30f Binary files /dev/null and b/assets/images/openai-subscription.c4d47de1-9519-4592-bf67-c05f537bcffb-1ec48b466361e81c44e613e503a1df55.png differ diff --git a/assets/images/openai-subscription.c4d47de1-9519-4592-bf67-c05f537bcffb-e4074e5316edb322435d7bdec4a8af09.png b/assets/images/openai-subscription.c4d47de1-9519-4592-bf67-c05f537bcffb-e4074e5316edb322435d7bdec4a8af09.png deleted file mode 100644 index 68ad490c6..000000000 Binary files a/assets/images/openai-subscription.c4d47de1-9519-4592-bf67-c05f537bcffb-e4074e5316edb322435d7bdec4a8af09.png and /dev/null differ diff --git a/assets/js/3e02089f.3843950f.js b/assets/js/3e02089f.3843950f.js deleted file mode 100644 index e2191fb07..000000000 --- a/assets/js/3e02089f.3843950f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocu_notion_sample_site=self.webpackChunkdocu_notion_sample_site||[]).push([[5920],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);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},c=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,b=d["".concat(s,".").concat(f)]||d[f]||u[f]||a;return n?r.createElement(b,i(i({ref:t},c),{},{components:n})):r.createElement(b,i({ref:t},c))}));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]=d;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p.mdxType="string"==typeof e?e:o,i[1]=p;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"OpenAI- Subscription",sidebar_position:31,slug:"/openai-subscription"},i=void 0,p={unversionedId:"FluxBuilder/Features/openai-subscription",id:"FluxBuilder/Features/openai-subscription",title:"OpenAI- Subscription",description:"This feature will ask users to subscribe to the app to use all of OpenAI App\u2019s main features.",source:"@site/docs/FluxBuilder/Features/openai-subscription.md",sourceDirName:"FluxBuilder/Features",slug:"/openai-subscription",permalink:"/openai-subscription",draft:!1,tags:[],version:"current",sidebarPosition:31,frontMatter:{title:"OpenAI- Subscription",sidebar_position:31,slug:"/openai-subscription"},sidebar:"tutorialSidebar",previous:{title:"OpenAI- Input Key",permalink:"/openai-input-key"},next:{title:"Maintenance Mode",permalink:"/maintenance-mode"}},s={},l=[{value:"1. Configuration Subscription",id:"7c3d2e581078457d95f359277e4e9ff8",level:2},{value:"2. Export configuration and pass it to FluxGPT",id:"1de6e5d897914f09904614160084e850",level:2},{value:"2.1 Get API key from iOS or Android Project",id:"61c12f8d98394e39807408bb115504be",level:3},{value:"2.2 Get Product Identifier",id:"a76b3213b45d4c13bb568fd2682d2d26",level:3},{value:"2.3 Enable Subscription on The App",id:"7037850b50a34eb8a20ead4af0c0ff20",level:3},{value:"3. Disable Subscription",id:"335077ed09f14085afc37368d8f9ba1e",level:2}],c={toc:l};function u(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This feature will ask users to subscribe to the app to use all of OpenAI App\u2019s main features."),(0,o.kt)("h2",{id:"7c3d2e581078457d95f359277e4e9ff8"},"1. Configuration Subscription"),(0,o.kt)("p",null,"Here are the simple steps to set it up:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"First, set up a Revenuecat account by following the easy-to-follow instructions in the\xa0",(0,o.kt)("a",{parentName:"li",href:"https://www.revenuecat.com/docs/projects"},"SDK Quickstart guide"),"."),(0,o.kt)("li",{parentName:"ol"},"Once you have your account set up, you can easily set up in-app products for iOS by following the clear instructions in the\xa0",(0,o.kt)("a",{parentName:"li",href:"https://www.revenuecat.com/docs/ios-products"},"iOS in-app product setup guide.")),(0,o.kt)("li",{parentName:"ol"},"And last but not least, you can also set up in-app products for Android by following the step-by-step instructions in the\xa0",(0,o.kt)("a",{parentName:"li",href:"https://www.revenuecat.com/docs/android-products"},"Android in-app product setup guide.")),(0,o.kt)("li",{parentName:"ol"},"Continue our product setup\xa0",(0,o.kt)("a",{parentName:"li",href:"https://www.revenuecat.com/docs/entitlements#products"},"guide"),"\xa0Note: You don't need to set up the\xa0",(0,o.kt)("strong",{parentName:"li"},"Offering Product"),"\xa0and you need to make sure when creating\xa0",(0,o.kt)("strong",{parentName:"li"},'Entitlement,\xa0you must set Identifier as "Pro"'))),(0,o.kt)("h2",{id:"1de6e5d897914f09904614160084e850"},"2. Export configuration and pass it to FluxGPT"),(0,o.kt)("h3",{id:"61c12f8d98394e39807408bb115504be"},"2.1 Get API key from iOS or Android Project"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("a",{parentName:"li",href:"https://app.revenuecat.com/projects/80700e4d/api-keys"},"Go to app.revenuecat.com")),(0,o.kt)("li",{parentName:"ol"},"Click on Projects")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(17920).Z,width:"1200",height:"984"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Click on your Project")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(92169).Z,width:"1200",height:"984"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Click on your apps like iOS or Android")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(80757).Z,width:"1200",height:"984"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Click on Public API Key")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(66770).Z,width:"1200",height:"984"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Click on copy text to save the Key")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(88577).Z,width:"1200",height:"984"})),(0,o.kt)("h3",{id:"a76b3213b45d4c13bb568fd2682d2d26"},"2.2 Get Product Identifier"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("a",{parentName:"li",href:"https://app.revenuecat.com/projects/dcb64a37/products"},"Go to app.revenuecat.com")),(0,o.kt)("li",{parentName:"ol"},"Click on Projects")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(23984).Z,width:"1200",height:"984"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Click on your project")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(11977).Z,width:"1200",height:"984"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Click on Products")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(56305).Z,width:"1200",height:"984"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Copy the identifier of the product you want to save. For iOS, append the identifier to the\xa0",(0,o.kt)("strong",{parentName:"li"},"revenueProductsIos"),"\xa0list. For Android, append the identifier to the\xa0",(0,o.kt)("strong",{parentName:"li"},"revenueProductsAndroid"),"\xa0list.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(31237).Z,width:"1200",height:"984"})),(0,o.kt)("h3",{id:"7037850b50a34eb8a20ead4af0c0ff20"},"2.3 Enable Subscription on The App"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Open your your OpenAI app on FluxBuilder"),(0,o.kt)("li",{parentName:"ol"},"Go to\xa0",(0,o.kt)("strong",{parentName:"li"},"Features"),"\xa0\u2192\xa0",(0,o.kt)("strong",{parentName:"li"},"General"),"\xa0\u2192\xa0",(0,o.kt)("strong",{parentName:"li"},"OpenAI")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"Enable Subscription")),(0,o.kt)("li",{parentName:"ol"},"Input the API Key from iOS or Android Project into the\xa0",(0,o.kt)("strong",{parentName:"li"},"Revenue Google API Key"),"\xa0and\xa0",(0,o.kt)("strong",{parentName:"li"},"RevenueCat: Apple API Key")),(0,o.kt)("li",{parentName:"ol"},"Input Product Identifier into\xa0",(0,o.kt)("strong",{parentName:"li"},"RevenueCat: Products IOS"),"\xa0and\xa0",(0,o.kt)("strong",{parentName:"li"},"RevenueCat: Products Android"))),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(77730).Z,width:"1605",height:"1249"})),(0,o.kt)("h2",{id:"335077ed09f14085afc37368d8f9ba1e"},"3. Disable Subscription"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Use"),"\xa0",(0,o.kt)("a",{parentName:"p",href:"https://www.fluxbuilder.com/download"},(0,o.kt)("strong",{parentName:"a"},"FluxBuilder")),(0,o.kt)("strong",{parentName:"p"},":")),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Open your FluxGPT app on FluxBuilder"),(0,o.kt)("li",{parentName:"ol"},"Go to\xa0",(0,o.kt)("strong",{parentName:"li"},"Features"),"\xa0\u2192\xa0",(0,o.kt)("strong",{parentName:"li"},"General"),"\xa0\u2192\xa0",(0,o.kt)("strong",{parentName:"li"},"OpenAI")),(0,o.kt)("li",{parentName:"ol"},"Turn off the\xa0",(0,o.kt)("strong",{parentName:"li"},"Enable Subscription"),"\xa0toggle switch")))}u.isMDXComponent=!0},31237:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.05e05910-03b0-4fca-bbba-1feb853dc5fb-0108bff7e9eb4e076de1219c12ad832f.png"},17920:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.09c2e8bd-5926-49d3-a7c9-491c3fd9d9b4-bbc77b5a719da0344d5119587af1e723.png"},92169:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.2b84e368-8018-425c-af7e-6d590873aeb9-f00846411f8bb988a13fcb0e10410619.png"},77730:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.3ba7b20e-3006-4699-80e6-c766d2e7c8f2-460158fb975566c14f71a84ff1cbffc0.webp"},23984:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.b31e7daf-b245-4f0e-bd21-1217c589cbd5-973d867b4d5d91804e662e4c4ffee98d.png"},11977:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.c1270d55-bcf6-400a-bbfd-303a9297f336-98a3cf445f08020a723d2a4658aca854.png"},88577:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.c4d47de1-9519-4592-bf67-c05f537bcffb-e4074e5316edb322435d7bdec4a8af09.png"},66770:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.e4220ec8-a4b7-4996-bd91-b3c36b8baec3-2cf41c7726683d01d1c3295f72a48b5e.png"},56305:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.edc72b13-07a7-418b-9f64-2ef357c639bb-564efd7af62b15bd0b9d347faa8d9afc.png"},80757:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.f94db0a4-5c7b-4a6f-b4f1-784a432ac28a-4fd226175a5553c622d5c7cbffdb718c.png"}}]); \ No newline at end of file diff --git a/assets/js/3e02089f.6ed0f045.js b/assets/js/3e02089f.6ed0f045.js new file mode 100644 index 000000000..e454239fd --- /dev/null +++ b/assets/js/3e02089f.6ed0f045.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocu_notion_sample_site=self.webpackChunkdocu_notion_sample_site||[]).push([[5920],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);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=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=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},c=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),d=l(n),f=a,b=d["".concat(s,".").concat(f)]||d[f]||u[f]||o;return n?r.createElement(b,i(i({ref:t},c),{},{components:n})):r.createElement(b,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var p={};for(var s in t)hasOwnProperty.call(t,s)&&(p[s]=t[s]);p.originalType=e,p.mdxType="string"==typeof e?e:a,i[1]=p;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var r=n(87462),a=(n(67294),n(3905));const o={title:"OpenAI- Subscription",sidebar_position:31,slug:"/openai-subscription"},i=void 0,p={unversionedId:"FluxBuilder/Features/openai-subscription",id:"FluxBuilder/Features/openai-subscription",title:"OpenAI- Subscription",description:"This feature will ask users to subscribe to the app to use all of OpenAI App\u2019s main features.",source:"@site/docs/FluxBuilder/Features/openai-subscription.md",sourceDirName:"FluxBuilder/Features",slug:"/openai-subscription",permalink:"/openai-subscription",draft:!1,tags:[],version:"current",sidebarPosition:31,frontMatter:{title:"OpenAI- Subscription",sidebar_position:31,slug:"/openai-subscription"},sidebar:"tutorialSidebar",previous:{title:"OpenAI- Input Key",permalink:"/openai-input-key"},next:{title:"Maintenance Mode",permalink:"/maintenance-mode"}},s={},l=[{value:"1. Configuration Subscription",id:"7c3d2e581078457d95f359277e4e9ff8",level:2},{value:"2. Export configuration and pass it to FluxGPT",id:"1de6e5d897914f09904614160084e850",level:2},{value:"2.1 Get API key from iOS or Android Project",id:"61c12f8d98394e39807408bb115504be",level:3},{value:"2.2 Get Product Identifier",id:"a76b3213b45d4c13bb568fd2682d2d26",level:3},{value:"2.3 Enable Subscription on The App",id:"7037850b50a34eb8a20ead4af0c0ff20",level:3},{value:"3. Disable Subscription",id:"335077ed09f14085afc37368d8f9ba1e",level:2}],c={toc:l};function u(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This feature will ask users to subscribe to the app to use all of OpenAI App\u2019s main features."),(0,a.kt)("h2",{id:"7c3d2e581078457d95f359277e4e9ff8"},"1. Configuration Subscription"),(0,a.kt)("p",null,"Here are the simple steps to set it up:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"First, set up a Revenuecat account by following the easy-to-follow instructions in the\xa0",(0,a.kt)("a",{parentName:"li",href:"https://www.revenuecat.com/docs/projects"},"SDK Quickstart guide"),"."),(0,a.kt)("li",{parentName:"ol"},"Once you have your account set up, you can easily set up in-app products for iOS by following the clear instructions in the\xa0",(0,a.kt)("a",{parentName:"li",href:"https://www.revenuecat.com/docs/ios-products"},"iOS in-app product setup guide.")),(0,a.kt)("li",{parentName:"ol"},"And last but not least, you can also set up in-app products for Android by following the step-by-step instructions in the\xa0",(0,a.kt)("a",{parentName:"li",href:"https://www.revenuecat.com/docs/android-products"},"Android in-app product setup guide.")),(0,a.kt)("li",{parentName:"ol"},"Continue our product setup\xa0",(0,a.kt)("a",{parentName:"li",href:"https://www.revenuecat.com/docs/entitlements#products"},"guide"),"\xa0Note: You don't need to set up the\xa0",(0,a.kt)("strong",{parentName:"li"},"Offering Product"),"\xa0and you need to make sure when creating\xa0",(0,a.kt)("strong",{parentName:"li"},'Entitlement,\xa0you must set Identifier as "Pro"'))),(0,a.kt)("h2",{id:"1de6e5d897914f09904614160084e850"},"2. Export configuration and pass it to FluxGPT"),(0,a.kt)("h3",{id:"61c12f8d98394e39807408bb115504be"},"2.1 Get API key from iOS or Android Project"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://app.revenuecat.com/projects/80700e4d/api-keys"},"Go to app.revenuecat.com")),(0,a.kt)("li",{parentName:"ol"},"Click on Projects")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(17920).Z,width:"1200",height:"984"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Click on your Project")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(92169).Z,width:"1200",height:"984"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Click on your apps like iOS or Android")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(80757).Z,width:"1200",height:"984"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Click on Public API Key")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(66770).Z,width:"1200",height:"984"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Click on copy text to save the Key")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(88577).Z,width:"1200",height:"984"})),(0,a.kt)("h3",{id:"a76b3213b45d4c13bb568fd2682d2d26"},"2.2 Get Product Identifier"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://app.revenuecat.com/projects/dcb64a37/products"},"Go to app.revenuecat.com")),(0,a.kt)("li",{parentName:"ol"},"Click on Projects")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(23984).Z,width:"1200",height:"984"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Click on your project")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(11977).Z,width:"1200",height:"984"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Click on Products")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(56305).Z,width:"1200",height:"984"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Copy the identifier of the product you want to save. For iOS, append the identifier to the\xa0",(0,a.kt)("strong",{parentName:"li"},"revenueProductsIos"),"\xa0list. For Android, append the identifier to the\xa0",(0,a.kt)("strong",{parentName:"li"},"revenueProductsAndroid"),"\xa0list.")),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(31237).Z,width:"1200",height:"984"})),(0,a.kt)("h3",{id:"7037850b50a34eb8a20ead4af0c0ff20"},"2.3 Enable Subscription on The App"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Open your your OpenAI app on FluxBuilder"),(0,a.kt)("li",{parentName:"ol"},"Go to\xa0",(0,a.kt)("strong",{parentName:"li"},"Features"),"\xa0\u2192\xa0",(0,a.kt)("strong",{parentName:"li"},"General"),"\xa0\u2192\xa0",(0,a.kt)("strong",{parentName:"li"},"OpenAI")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},"Enable Subscription")),(0,a.kt)("li",{parentName:"ol"},"Input the API Key from iOS or Android Project into the\xa0",(0,a.kt)("strong",{parentName:"li"},"Revenue Google API Key"),"\xa0and\xa0",(0,a.kt)("strong",{parentName:"li"},"RevenueCat: Apple API Key")),(0,a.kt)("li",{parentName:"ol"},"Input Product Identifier into\xa0",(0,a.kt)("strong",{parentName:"li"},"RevenueCat: Products IOS"),"\xa0and\xa0",(0,a.kt)("strong",{parentName:"li"},"RevenueCat: Products Android"))),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(77730).Z,width:"1605",height:"1249"})),(0,a.kt)("h2",{id:"335077ed09f14085afc37368d8f9ba1e"},"3. Disable Subscription"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Use"),"\xa0",(0,a.kt)("a",{parentName:"p",href:"https://www.fluxbuilder.com/download"},(0,a.kt)("strong",{parentName:"a"},"FluxBuilder")),(0,a.kt)("strong",{parentName:"p"},":")),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Open your FluxGPT app on FluxBuilder"),(0,a.kt)("li",{parentName:"ol"},"Go to\xa0",(0,a.kt)("strong",{parentName:"li"},"Features"),"\xa0\u2192\xa0",(0,a.kt)("strong",{parentName:"li"},"General"),"\xa0\u2192\xa0",(0,a.kt)("strong",{parentName:"li"},"OpenAI")),(0,a.kt)("li",{parentName:"ol"},"Turn off the\xa0",(0,a.kt)("strong",{parentName:"li"},"Enable Subscription"),"\xa0toggle switch")))}u.isMDXComponent=!0},31237:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.05e05910-03b0-4fca-bbba-1feb853dc5fb-6a7b438c25235a9e7d5ee2a029a4f982.png"},17920:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.09c2e8bd-5926-49d3-a7c9-491c3fd9d9b4-bbc77b5a719da0344d5119587af1e723.png"},92169:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.2b84e368-8018-425c-af7e-6d590873aeb9-25ef32e3ecea449e68d8d267a7b4468c.png"},77730:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.3ba7b20e-3006-4699-80e6-c766d2e7c8f2-460158fb975566c14f71a84ff1cbffc0.webp"},23984:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.b31e7daf-b245-4f0e-bd21-1217c589cbd5-973d867b4d5d91804e662e4c4ffee98d.png"},11977:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.c1270d55-bcf6-400a-bbfd-303a9297f336-98a3cf445f08020a723d2a4658aca854.png"},88577:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.c4d47de1-9519-4592-bf67-c05f537bcffb-1ec48b466361e81c44e613e503a1df55.png"},66770:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.e4220ec8-a4b7-4996-bd91-b3c36b8baec3-2cf41c7726683d01d1c3295f72a48b5e.png"},56305:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.edc72b13-07a7-418b-9f64-2ef357c639bb-564efd7af62b15bd0b9d347faa8d9afc.png"},80757:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/openai-subscription.f94db0a4-5c7b-4a6f-b4f1-784a432ac28a-4fd226175a5553c622d5c7cbffdb718c.png"}}]); \ No newline at end of file diff --git a/assets/js/fe0a5656.8de1253b.js b/assets/js/fe0a5656.8de1253b.js deleted file mode 100644 index 304cd45c6..000000000 --- a/assets/js/fe0a5656.8de1253b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocu_notion_sample_site=self.webpackChunkdocu_notion_sample_site||[]).push([[4714],{30453:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var n=a(87462),i=(a(67294),a(3905)),o=a(22004);const l={title:"App Screens",sidebar_position:1,slug:"/design-app-branding"},s=void 0,r={unversionedId:"FluxBuilder/Design/design-app-branding",id:"FluxBuilder/Design/design-app-branding",title:"App Screens",description:"Design your App\u2019s UI easily and flexibly by drag&drop. You can also configure to update your App\u2019s UI without republishing app to App Store and Google Play.",source:"@site/docs/FluxBuilder/Design/design-app-branding.md",sourceDirName:"FluxBuilder/Design",slug:"/design-app-branding",permalink:"/design-app-branding",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"App Screens",sidebar_position:1,slug:"/design-app-branding"},sidebar:"tutorialSidebar",previous:{title:"Delivery Boy app\u2019s plugins",permalink:"/delivery-boy-plugin"},next:{title:"App UIs",permalink:"/advance-design-config"}},d={},c=[{value:"Layout UI Kits (recommended)",id:"c2f9a4b78ccc40f38c0d9de2a38a230f",level:2},{value:"Homepage",id:"cc543bc1fcd04addbad7e8265cee93da",level:2},{value:"Category screen",id:"f0def8a63b21471a8da0ecacdc0d6adf",level:2},{value:"Settings (Profile) screen",id:"3edf407014e4418fa8e03591396a28f3",level:2},{value:"Vendors screen",id:"778da6b4b1cb46a489db91c0240a5141",level:2},{value:"Splash screen",id:"75fb981ded054dc39c9fa78fe08521d8",level:2},{value:"Onboarding screen",id:"0134225a17d04faf8a838168a53efa78",level:2},{value:"Notification Request screen",id:"2fa918938df141fcaf45e2e998f0ad40",level:2},{value:"Details screen",id:"ff2fdcdd26d34437a02dfaa9ef7fb386",level:2},{value:"Filter screen",id:"b8509b179a154c429dcb019b1c4f6ca3",level:2},{value:"Webview Page with Token",id:"1399d565f3fd4925806e463f57f2becf",level:2},{value:"My Cart screen",id:"6c66438a997a41a9b1009076893ca1e6",level:2},{value:"Address screen",id:"d4e784f5f2114673a039bbf1c6a31245",level:2},{value:"1. Remove Items",id:"af0379a21a4a4a2783f8444985427aa3",level:3},{value:"2. Phone Number Config",id:"afc43c25f21d434f854e386e5b1ac18f",level:3},{value:"Shopping Video screen",id:"0d6b53a765614da8aeaf84cbcbcad482",level:2}],p={toc:c};function u(e){let{components:t,...l}=e;return(0,i.kt)("wrapper",(0,n.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Design your App\u2019s UI easily and flexibly by drag&drop. You can also configure to ",(0,i.kt)("a",{parentName:"p",href:"https://docs.fluxbuilder.com/update-app-without-republishing"},"update your App\u2019s UI without republishing app")," to App Store and Google Play."),(0,i.kt)("h2",{id:"c2f9a4b78ccc40f38c0d9de2a38a230f"},"Layout UI Kits (recommended)"),(0,i.kt)("p",null,"You can easily and quickly design the Homepage of the app with about 80 Layout Templates, saving you valuable time."),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=qDSGTbOTzPo",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"cc543bc1fcd04addbad7e8265cee93da"},"Homepage"),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=88sAsg1Tdqk",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"f0def8a63b21471a8da0ecacdc0d6adf"},"Category screen"),(0,i.kt)("p",null,"Many users like to define a new category tree that is different from the backend site. Let\u2019s try the Remap Categories feature:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Allows user to control the Position, Order, and Level of Category manually."),(0,i.kt)("li",{parentName:"ul"},"Available on Side menu (Category part) and Category screen.")),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=Kar-zZl4D9I",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"3edf407014e4418fa8e03591396a28f3"},"Settings (Profile) screen"),(0,i.kt)("p",null,"4 different styles for the Profile screen (Settings screen), allowing you to select the UI that suits your preferences the most."),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=oV6XsIHStgA",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"778da6b4b1cb46a489db91c0240a5141"},"Vendors screen"),(0,i.kt)("p",null,"Experience the 3 UIs of the Vendors screen in the Multi-Vendor apps (Multiple Sellers app with WCFM or Dokan plugin)."),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=DrZopU2SF9k",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"75fb981ded054dc39c9fa78fe08521d8"},"Splash screen"),(0,i.kt)("p",null,"To set your logo and caption from the startup screen or to fix the white screen when opening the app, let's customize\xa0your Splash screen:"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/splash-screen"},"Click here to follow the full guide"),"."),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=1RLRnvWoCA4",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"0134225a17d04faf8a838168a53efa78"},"Onboarding screen"),(0,i.kt)("p",null,"Let\u2019s customize the onboarding content (welcome screen):"),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=Swan_7LDHus",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"2fa918938df141fcaf45e2e998f0ad40"},"Notification Request screen"),(0,i.kt)("p",null,"When users open your app for the first time, the app must show this screen to ask for their permission to use notifications. Obviously, the users can also re-adjust it in the Settings screen on the app later."),(0,i.kt)("p",null,"This UI follows\xa0",(0,i.kt)("a",{parentName:"p",href:"https://uxdesign.cc/what-does-gdpr-mean-for-ux-9b5ecbc51a43"},"GDPR compliance"),"\xa0(GDPR affects all companies that do business in the EU)."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(40933).Z,width:"2159",height:"1360"})),(0,i.kt)("h2",{id:"ff2fdcdd26d34437a02dfaa9ef7fb386"},"Details screen"),(0,i.kt)("p",null,"Product Details screen or Blog Details screen are easy to edit by following steps:"),(0,i.kt)("p",null,"Step 1: on FluxBuilder, open your app, then click Home."),(0,i.kt)("p",null,"Step 2: Select a product/blog on the simulator."),(0,i.kt)("p",null,"Step 3: edit as you like."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(2429).Z,width:"1387",height:"732"})),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=yxJDeTToVAc",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"b8509b179a154c429dcb019b1c4f6ca3"},"Filter screen"),(0,i.kt)("p",null,"There are 3 templates of Product List screen (or Filter screen) that you are able to edit:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(26042).Z,width:"1504",height:"1128"})),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(44327).Z,width:"2159",height:"1366"})),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=JKZQIKwmbu0",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"1399d565f3fd4925806e463f57f2becf"},"Webview Page with Token"),(0,i.kt)("p",null,"Ability to add a Webview page into your native app (good release on App Store and Google Play). "),(0,i.kt)("p",null,"Supports adding a Webview page on some parts of app:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Settings screen"),(0,i.kt)("li",{parentName:"ul"},"Side menu"),(0,i.kt)("li",{parentName:"ul"},"TabBar")),(0,i.kt)("p",null,"If you want users to access the Webview Page without re-login, enabling\xa0",(0,i.kt)("inlineCode",{parentName:"p"},"REQUIRED LOGIN"),"\xa0to add Token when the user logs into the app."),(0,i.kt)("p",null,"If you want to use Javascript to hide some webview UI on the app, add\xa0",(0,i.kt)("inlineCode",{parentName:"p"},"SCRIPT"),"\xa0to hide some webview UI as video below: "),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=aoEAzrhkKC0",mdxType:"ReactPlayer"}),(0,i.kt)("h2",{id:"6c66438a997a41a9b1009076893ca1e6"},"My Cart screen"),(0,i.kt)("p",null,"The Checkout buttons can be located flexibly on the My Cart screen. Available for E-commerce apps:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(51381).Z,width:"2159",height:"1239"})),(0,i.kt)("h2",{id:"d4e784f5f2114673a039bbf1c6a31245"},"Address screen"),(0,i.kt)("h3",{id:"af0379a21a4a4a2783f8444985427aa3"},"1. Remove Items"),(0,i.kt)("p",null,"This screen is available for E-commerce app. Not available for News app or GPT app."),(0,i.kt)("p",null,"Easily remove unnecessary fields, re-order, or edit fields on the Address screen for the checkout:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(15710).Z,width:"2159",height:"1364"})),(0,i.kt)("h3",{id:"afc43c25f21d434f854e386e5b1ac18f"},"2. Phone Number Config"),(0,i.kt)("p",null,"This guide is available for E-commerce app. Not available for News, Listing, or GPT apps."),(0,i.kt)("p",null,"The phone number can be configured, which helps to validate the entered phone number by using Google's libphonenumber. Simpler and cheaper than sending OTP to verify the phone numbers."),(0,i.kt)("p",null,"The feature includes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Check validation of Phone Number."),(0,i.kt)("li",{parentName:"ul"},"Ability to customize Default Country."),(0,i.kt)("li",{parentName:"ul"},"Use for either normal or international phone numbers."),(0,i.kt)("li",{parentName:"ul"},"Support customizing the Country List."),(0,i.kt)("li",{parentName:"ul"},"Show or hide Flag Image."),(0,i.kt)("li",{parentName:"ul"},"Support RTL language."),(0,i.kt)("li",{parentName:"ul"},"Have 3 Selector Types for choosing a country list.")),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(42438).Z,width:"2159",height:"1277"})),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(75412).Z,width:"1616",height:"994"})),(0,i.kt)("h2",{id:"0d6b53a765614da8aeaf84cbcbcad482"},"Shopping Video screen"),(0,i.kt)("p",null,"Support adding a Shopping Video widget/page: (available for WooCommerce and Shopify apps)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Show video list view with\xa0",(0,i.kt)("strong",{parentName:"li"},".mp4"),"\xa0files, which is similar to Tiktok and Youtube Short."),(0,i.kt)("li",{parentName:"ul"},"Load the video list (get it from the Product setup as in the video below).")),(0,i.kt)("p",null,"Available on these apps: Woocommerce, Woocommerce with Dokan or WCFM plugin, Shopify. The feature is also supported in Listing, but it requires the Woocommerce plugin installed on your Listing website."),(0,i.kt)(o.Z,{controls:!0,url:"https://www.youtube.com/watch?v=WG_txIAriR4",mdxType:"ReactPlayer"}),(0,i.kt)("p",null,"Follow these Steps to configure this screen:"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Step 1:\xa0Add videos into Products")),(0,i.kt)("p",null,"For WooCommerce: go to your Admin site, edit a product. In Video Setting, refer to a .mp4 file (as image below). After that, UPDATE the product."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(12985).Z,width:"1195",height:"663"})),(0,i.kt)("p",null,'For Shopify: after uploading a new video file in the Product settings on Admin site, remember to add the tag "video" as below:'),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(20220).Z,width:"2286",height:"1998"})),(0,i.kt)("p",null,"Step 2: Configure the feature"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(77014).Z,width:"2159",height:"1218"})),(0,i.kt)("p",null,"That\u2019s all :)"))}u.isMDXComponent=!0},44327:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.03649ee7-91d1-4cc7-937f-9929c2ac4986-efaa4d107beb359abab461a7b69a8e11.png"},2429:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.167cca8a-0e0b-420c-ae96-74da71863b56-9296c05cc7cec97610709b975212d481.png"},15710:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.5c96f194-1ded-47d3-b932-f67862b89721-3ffae9a268beeed3214e1528852b45ef.png"},75412:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.7f2c864f-970f-4b70-bff6-6f5b8b516b2e-52983af6ab49f3c178f24638d2f384cd.webp"},40933:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.97a08499-5477-43b1-8957-21d518ae8b97-294e73e12605ceff39c69fdc51dafcff.png"},12985:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.a5d26dde-e0d0-4341-94c4-615c9044e1f0-8f478eb0a585af24eceadce52b4c5482.webp"},42438:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.bbd49fec-3d6d-48e8-b4f0-3d92932b326f-50cf354c08b60b932071040172a56695.png"},20220:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.dec17183-1b19-4b2b-80fe-fc90ea9738c9-234fcfddc48c0c75663ee30db578ed07.webp"},51381:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.e7a244f0-8063-4cae-98af-fdc138b206b0-b2fef2f923532fe8a17c0b3770d9f0fc.png"},26042:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.f42725c1-b897-44a4-af1e-39e6f53c0500-c9c5414642cd33f262d8667a8e54180e.webp"},77014:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/design-app-branding.f8e0d8de-bad4-41f3-a22d-b213f1b54c3f-69a8083c6c377a9845b5d915a2680d2f.png"}}]); \ No newline at end of file diff --git a/assets/js/fe0a5656.ba3ed924.js b/assets/js/fe0a5656.ba3ed924.js new file mode 100644 index 000000000..c976b15af --- /dev/null +++ b/assets/js/fe0a5656.ba3ed924.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocu_notion_sample_site=self.webpackChunkdocu_notion_sample_site||[]).push([[4714],{30453:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>p});var o=a(87462),n=(a(67294),a(3905)),i=a(22004);const s={title:"App Screens",sidebar_position:1,slug:"/design-app-branding"},l=void 0,r={unversionedId:"FluxBuilder/Design/design-app-branding",id:"FluxBuilder/Design/design-app-branding",title:"App Screens",description:"Design your App\u2019s UI easily and flexibly by drag&drop. You can also configure to update your App\u2019s UI without republishing app to App Store and Google Play.",source:"@site/docs/FluxBuilder/Design/design-app-branding.md",sourceDirName:"FluxBuilder/Design",slug:"/design-app-branding",permalink:"/design-app-branding",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"App Screens",sidebar_position:1,slug:"/design-app-branding"},sidebar:"tutorialSidebar",previous:{title:"Delivery Boy app\u2019s plugins",permalink:"/delivery-boy-plugin"},next:{title:"App UIs",permalink:"/advance-design-config"}},d={},p=[{value:"Layout UI Kits (recommended)",id:"c2f9a4b78ccc40f38c0d9de2a38a230f",level:2},{value:"Homepage",id:"cc543bc1fcd04addbad7e8265cee93da",level:2},{value:"Category screen",id:"f0def8a63b21471a8da0ecacdc0d6adf",level:2},{value:"Settings (Profile) screen",id:"3edf407014e4418fa8e03591396a28f3",level:2},{value:"Vendors screen",id:"778da6b4b1cb46a489db91c0240a5141",level:2},{value:"Splash screen",id:"75fb981ded054dc39c9fa78fe08521d8",level:2},{value:"Onboarding screen",id:"0134225a17d04faf8a838168a53efa78",level:2},{value:"Notification Request screen",id:"2fa918938df141fcaf45e2e998f0ad40",level:2},{value:"Details screen",id:"ff2fdcdd26d34437a02dfaa9ef7fb386",level:2},{value:"Filter screen",id:"b8509b179a154c429dcb019b1c4f6ca3",level:2},{value:"Webview Page with Token",id:"1399d565f3fd4925806e463f57f2becf",level:2},{value:"My Cart screen",id:"6c66438a997a41a9b1009076893ca1e6",level:2},{value:"Address screen",id:"d4e784f5f2114673a039bbf1c6a31245",level:2},{value:"1. Remove Items",id:"af0379a21a4a4a2783f8444985427aa3",level:3},{value:"2. Phone Number Config",id:"afc43c25f21d434f854e386e5b1ac18f",level:3},{value:"Shopping Video screen",id:"0d6b53a765614da8aeaf84cbcbcad482",level:2},{value:"YITH Store Locator",id:"a690bd8e12b54b25b4b038de02769597",level:2},{value:"1. Prerequisite",id:"bc19e723990548a79d0f2f068a5419ec",level:3},{value:"2. Add Store Locator Layout into the App",id:"2a84f0c32d82441484bc0567241a3a40",level:3},{value:"3. Set Up the Website",id:"3136130ff8c64ef9a00c4b4a381b78c1",level:3}],c={toc:p};function u(e){let{components:t,...s}=e;return(0,n.kt)("wrapper",(0,o.Z)({},c,s,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Design your App\u2019s UI easily and flexibly by drag&drop. You can also configure to ",(0,n.kt)("a",{parentName:"p",href:"https://docs.fluxbuilder.com/update-app-without-republishing"},"update your App\u2019s UI without republishing app")," to App Store and Google Play."),(0,n.kt)("h2",{id:"c2f9a4b78ccc40f38c0d9de2a38a230f"},"Layout UI Kits (recommended)"),(0,n.kt)("p",null,"You can easily and quickly design the Homepage of the app with about 80 Layout Templates, saving you valuable time."),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=qDSGTbOTzPo",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"cc543bc1fcd04addbad7e8265cee93da"},"Homepage"),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=88sAsg1Tdqk",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"f0def8a63b21471a8da0ecacdc0d6adf"},"Category screen"),(0,n.kt)("p",null,"Many users like to define a new category tree that is different from the backend site. Let\u2019s try the Remap Categories feature:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Allows user to control the Position, Order, and Level of Category manually."),(0,n.kt)("li",{parentName:"ul"},"Available on Side menu (Category part) and Category screen.")),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=Kar-zZl4D9I",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"3edf407014e4418fa8e03591396a28f3"},"Settings (Profile) screen"),(0,n.kt)("p",null,"4 different styles for the Profile screen (Settings screen), allowing you to select the UI that suits your preferences the most."),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=oV6XsIHStgA",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"778da6b4b1cb46a489db91c0240a5141"},"Vendors screen"),(0,n.kt)("p",null,"Experience the 3 UIs of the Vendors screen in the Multi-Vendor apps (Multiple Sellers app with WCFM or Dokan plugin)."),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=DrZopU2SF9k",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"75fb981ded054dc39c9fa78fe08521d8"},"Splash screen"),(0,n.kt)("p",null,"To set your logo and caption from the startup screen or to fix the white screen when opening the app, let's customize\xa0your Splash screen:"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/splash-screen"},"Click here to follow the full guide"),"."),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=1RLRnvWoCA4",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"0134225a17d04faf8a838168a53efa78"},"Onboarding screen"),(0,n.kt)("p",null,"Let\u2019s customize the onboarding content (welcome screen):"),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=Swan_7LDHus",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"2fa918938df141fcaf45e2e998f0ad40"},"Notification Request screen"),(0,n.kt)("p",null,"When users open your app for the first time, the app must show this screen to ask for their permission to use notifications. Obviously, the users can also re-adjust it in the Settings screen on the app later."),(0,n.kt)("p",null,"This UI follows\xa0",(0,n.kt)("a",{parentName:"p",href:"https://uxdesign.cc/what-does-gdpr-mean-for-ux-9b5ecbc51a43"},"GDPR compliance"),"\xa0(GDPR affects all companies that do business in the EU)."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(40933).Z,width:"2159",height:"1360"})),(0,n.kt)("h2",{id:"ff2fdcdd26d34437a02dfaa9ef7fb386"},"Details screen"),(0,n.kt)("p",null,"Product Details screen or Blog Details screen are easy to edit by following steps:"),(0,n.kt)("p",null,"Step 1: on FluxBuilder, open your app, then click Home."),(0,n.kt)("p",null,"Step 2: Select a product/blog on the simulator."),(0,n.kt)("p",null,"Step 3: edit as you like."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2429).Z,width:"1387",height:"732"})),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=yxJDeTToVAc",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"b8509b179a154c429dcb019b1c4f6ca3"},"Filter screen"),(0,n.kt)("p",null,"There are 3 templates of Product List screen (or Filter screen) that you are able to edit:"),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(26042).Z,width:"1504",height:"1128"})),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(44327).Z,width:"2159",height:"1366"})),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=JKZQIKwmbu0",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"1399d565f3fd4925806e463f57f2becf"},"Webview Page with Token"),(0,n.kt)("p",null,"Ability to add a Webview page into your native app (good release on App Store and Google Play). "),(0,n.kt)("p",null,"Supports adding a Webview page on some parts of app:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Settings screen"),(0,n.kt)("li",{parentName:"ul"},"Side menu"),(0,n.kt)("li",{parentName:"ul"},"TabBar")),(0,n.kt)("p",null,"If you want users to access the Webview Page without re-login, enabling\xa0",(0,n.kt)("inlineCode",{parentName:"p"},"REQUIRED LOGIN"),"\xa0to add Token when the user logs into the app."),(0,n.kt)("p",null,"If you want to use Javascript to hide some webview UI on the app, add\xa0",(0,n.kt)("inlineCode",{parentName:"p"},"SCRIPT"),"\xa0to hide some webview UI as video below: "),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=aoEAzrhkKC0",mdxType:"ReactPlayer"}),(0,n.kt)("h2",{id:"6c66438a997a41a9b1009076893ca1e6"},"My Cart screen"),(0,n.kt)("p",null,"The Checkout buttons can be located flexibly on the My Cart screen. Available for E-commerce apps:"),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(51381).Z,width:"2159",height:"1239"})),(0,n.kt)("h2",{id:"d4e784f5f2114673a039bbf1c6a31245"},"Address screen"),(0,n.kt)("h3",{id:"af0379a21a4a4a2783f8444985427aa3"},"1. Remove Items"),(0,n.kt)("p",null,"This screen is available for E-commerce app. Not available for News app or GPT app."),(0,n.kt)("p",null,"Easily remove unnecessary fields, re-order, or edit fields on the Address screen for the checkout:"),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(15710).Z,width:"2159",height:"1364"})),(0,n.kt)("h3",{id:"afc43c25f21d434f854e386e5b1ac18f"},"2. Phone Number Config"),(0,n.kt)("p",null,"This guide is available for E-commerce app. Not available for News, Listing, or GPT apps."),(0,n.kt)("p",null,"The phone number can be configured, which helps to validate the entered phone number by using Google's libphonenumber. Simpler and cheaper than sending OTP to verify the phone numbers."),(0,n.kt)("p",null,"The feature includes:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Check validation of Phone Number."),(0,n.kt)("li",{parentName:"ul"},"Ability to customize Default Country."),(0,n.kt)("li",{parentName:"ul"},"Use for either normal or international phone numbers."),(0,n.kt)("li",{parentName:"ul"},"Support customizing the Country List."),(0,n.kt)("li",{parentName:"ul"},"Show or hide Flag Image."),(0,n.kt)("li",{parentName:"ul"},"Support RTL language."),(0,n.kt)("li",{parentName:"ul"},"Have 3 Selector Types for choosing a country list.")),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(42438).Z,width:"2159",height:"1277"})),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(75412).Z,width:"1616",height:"994"})),(0,n.kt)("h2",{id:"0d6b53a765614da8aeaf84cbcbcad482"},"Shopping Video screen"),(0,n.kt)("p",null,"Support adding a Shopping Video widget/page: (available for WooCommerce and Shopify apps)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Show video list view with\xa0",(0,n.kt)("strong",{parentName:"li"},".mp4"),"\xa0files, which is similar to Tiktok and Youtube Short."),(0,n.kt)("li",{parentName:"ul"},"Load the video list (get it from the Product setup as in the video below).")),(0,n.kt)("p",null,"Available on these apps: Woocommerce, Woocommerce with Dokan or WCFM plugin, Shopify. The feature is also supported in Listing, but it requires the Woocommerce plugin installed on your Listing website."),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=WG_txIAriR4",mdxType:"ReactPlayer"}),(0,n.kt)("p",null,"Follow these Steps to configure this screen:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Step 1:\xa0Add videos into Products")),(0,n.kt)("p",null,"For WooCommerce: go to your Admin site, edit a product. In Video Setting, refer to a .mp4 file (as image below). After that, UPDATE the product."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(12985).Z,width:"1195",height:"663"})),(0,n.kt)("p",null,'For Shopify: after uploading a new video file in the Product settings on Admin site, remember to add the tag "video" as below:'),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(20220).Z,width:"2286",height:"1998"})),(0,n.kt)("p",null,"Step 2: Configure the feature"),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(77014).Z,width:"2159",height:"1218"})),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"a690bd8e12b54b25b4b038de02769597"},"YITH Store Locator"),(0,n.kt)("p",null,"This guide tells you how to implement a Store Locator in Your App for Seamless Customer Navigation"),(0,n.kt)("p",null,"Discover how to enable a store locator feature in your app, enabling customers to effortlessly find your points of sale. Provide real-time directions based on their current location, ensuring a convenient and hassle-free experience for your valued customers."),(0,n.kt)(i.Z,{controls:!0,url:"https://www.youtube.com/watch?v=_TaTQMknqwo&t=77s",mdxType:"ReactPlayer"}),(0,n.kt)("h3",{id:"bc19e723990548a79d0f2f068a5419ec"},(0,n.kt)("strong",{parentName:"h3"},"1. Prerequisite")),(0,n.kt)("p",null,"Before setting up the feature, you need to install the plugin\xa0",(0,n.kt)("a",{parentName:"p",href:"https://yithemes.com/themes/plugins/yith-store-locator-wordpress/?_4402539143="},"YITH Store Locator for WordPress & WooCommerce"),"\xa0on your website."),(0,n.kt)("h3",{id:"2a84f0c32d82441484bc0567241a3a40"},"2. Add Store Locator Layout into the App"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Open your app on ",(0,n.kt)("strong",{parentName:"li"},"FluxBuilder")),(0,n.kt)("li",{parentName:"ol"},"In ",(0,n.kt)("strong",{parentName:"li"},"Design"),", select any tab")),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(53450).Z,width:"500",height:"620"})),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"On the right side, in ",(0,n.kt)("strong",{parentName:"li"},"DESIGN LAYOUT"),", select ",(0,n.kt)("strong",{parentName:"li"},"Store Locator"))),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(90251).Z,width:"696",height:"1180"})),(0,n.kt)("h3",{id:"3136130ff8c64ef9a00c4b4a381b78c1"},"3. Set Up the Website"),(0,n.kt)("p",null,"After completing the settings above, now let open your admin site, and follow the steps to make sure the feature works on app:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Step 1"),": Add new stores in\xa0",(0,n.kt)("strong",{parentName:"p"},"Yith"),"\xa0",">","\xa0",(0,n.kt)("strong",{parentName:"p"},"Store Locator"),"\xa0",">","\xa0",(0,n.kt)("strong",{parentName:"p"},"Add New"),"."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(73138).Z,width:"2132",height:"958"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Step 2"),": Go to ",(0,n.kt)("strong",{parentName:"p"},"Products"),", open the products you need to add to the store. Go to ",(0,n.kt)("strong",{parentName:"p"},"Store locator")," to select the corresponding store."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(56317).Z,width:"2162",height:"1055"})),(0,n.kt)("p",null,"That\u2019s all!"))}u.isMDXComponent=!0},44327:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.03649ee7-91d1-4cc7-937f-9929c2ac4986-efaa4d107beb359abab461a7b69a8e11.png"},2429:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.167cca8a-0e0b-420c-ae96-74da71863b56-9296c05cc7cec97610709b975212d481.png"},90251:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.1b5e8f3b-0b8f-463e-9834-1a1f05463644-f4f94c401540a693440f807b2092aa76.png"},53450:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.5457a560-1088-4f8e-a8aa-27c3d07251f2-2fe665a040d26b7881dfd3cc8dc39919.png"},73138:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.5aac044a-0acc-4ef5-93af-0c4d5b54e4c3-c487900fdf5a16e18d4b40b7f18b9b0d.webp"},15710:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.5c96f194-1ded-47d3-b932-f67862b89721-3ffae9a268beeed3214e1528852b45ef.png"},75412:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.7f2c864f-970f-4b70-bff6-6f5b8b516b2e-52983af6ab49f3c178f24638d2f384cd.webp"},40933:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.97a08499-5477-43b1-8957-21d518ae8b97-294e73e12605ceff39c69fdc51dafcff.png"},12985:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.a5d26dde-e0d0-4341-94c4-615c9044e1f0-8f478eb0a585af24eceadce52b4c5482.webp"},42438:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.bbd49fec-3d6d-48e8-b4f0-3d92932b326f-50cf354c08b60b932071040172a56695.png"},56317:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.bc5f2e83-08d5-4fbf-a780-4de627837243-63e05b6c4f751eb3c02c472eafd233d8.webp"},20220:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.dec17183-1b19-4b2b-80fe-fc90ea9738c9-234fcfddc48c0c75663ee30db578ed07.webp"},51381:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.e7a244f0-8063-4cae-98af-fdc138b206b0-b2fef2f923532fe8a17c0b3770d9f0fc.png"},26042:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.f42725c1-b897-44a4-af1e-39e6f53c0500-c9c5414642cd33f262d8667a8e54180e.webp"},77014:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/design-app-branding.f8e0d8de-bad4-41f3-a22d-b213f1b54c3f-69a8083c6c377a9845b5d915a2680d2f.png"}}]); \ No newline at end of file diff --git a/assets/js/main.460c8572.js b/assets/js/main.be400272.js similarity index 99% rename from assets/js/main.460c8572.js rename to assets/js/main.be400272.js index d8802890f..635790946 100644 --- a/assets/js/main.460c8572.js +++ b/assets/js/main.be400272.js @@ -1,2 +1,2 @@ -/*! For license information please see main.460c8572.js.LICENSE.txt */ -(self.webpackChunkdocu_notion_sample_site=self.webpackChunkdocu_notion_sample_site||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(67294),a=n(87462),i=n(68356),o=n.n(i),l=n(16887);const s={"039091bb":[()=>Promise.all([n.e(1068),n.e(4930)]).then(n.bind(n,99222)),"@site/docs/Agency/agency-settings.md",99222],"093f8800":[()=>Promise.all([n.e(1068),n.e(8551)]).then(n.bind(n,67175)),"@site/docs/Agency/agency-mail-settings.md",67175],"0d21134a":[()=>n.e(9840).then(n.bind(n,84629)),"@site/docs/FluxBuilder/Integration/sign-up-and-login.md",84629],"10a51df0":[()=>Promise.all([n.e(1068),n.e(5)]).then(n.bind(n,8040)),"@site/docs/FluxBuilder/Integration/import-export-and-other.md",8040],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,44700)),"@theme/DocItem",44700],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,42027)),"@theme/SearchPage",42027],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,19963)),"@theme/DocPage",19963],"1c382b4e":[()=>Promise.all([n.e(1068),n.e(8625)]).then(n.bind(n,11909)),"@site/docs/FluxBuilder/Design/product-detail-settings.md",11909],"2266193e":[()=>n.e(4528).then(n.bind(n,49459)),"@site/docs/FluxBuilder/Design/splash-screen.md",49459],"2511e5bf":[()=>n.e(2028).then(n.bind(n,62772)),"@site/docs/FluxBuilder/Build/sha-1-and-sha-256.md",62772],25172887:[()=>n.e(2982).then(n.bind(n,648)),"@site/docs/FluxBuilder/Features/judgeme-review.md",648],"26b38e00":[()=>n.e(9309).then(n.bind(n,28785)),"@site/docs/FluxBuilder/Features/search-nearby-vendors-wcfm.md",28785],"28cb4d7d":[()=>Promise.all([n.e(1068),n.e(712)]).then(n.bind(n,22149)),"@site/docs/FluxBuilder/Features/dynamic-link.md",22149],"2a9311c6":[()=>n.e(7182).then(n.bind(n,48162)),"@site/docs/FluxBuilder/Integration/customize-your-app.md",48162],"33a6e3e7":[()=>n.e(536).then(n.bind(n,47910)),"@site/docs/FluxBuilder/Features/Firebase-Realtime-Chat.md",47910],"350838eb":[()=>n.e(9434).then(n.bind(n,83511)),"@site/docs/FluxBuilder/Integration/magento-api.md",83511],"39757ce4":[()=>n.e(7518).then(n.bind(n,43173)),"@site/docs/FluxBuilder/Integration/opencart-api.md",43173],"3c688820":[()=>n.e(7880).then(n.bind(n,80892)),"@site/docs/FluxBuilder/Features/gdpr-compliance.md",80892],"3cc3084f":[()=>n.e(4342).then(n.bind(n,61280)),"@site/docs/FluxBuilder/Integration/shopify-access-token.md",61280],"3e02089f":[()=>n.e(5920).then(n.bind(n,23235)),"@site/docs/FluxBuilder/Features/openai-subscription.md",23235],"42a492ec":[()=>n.e(7590).then(n.bind(n,58025)),"@site/docs/FluxBuilder/Features/config-app-features.md",58025],"42bc5dc0":[()=>Promise.all([n.e(1068),n.e(9910)]).then(n.bind(n,27966)),"@site/docs/FluxBuilder/Features/woocommerce-appointment.md",27966],"43e43df8":[()=>n.e(6639).then(n.bind(n,14369)),"@site/docs/FluxBuilder/how-to-get-support.md",14369],"43ea6380":[()=>n.e(7543).then(n.bind(n,15665)),"@site/docs/FluxBuilder/Build/create-keystore-file.md",15665],"4416975d":[()=>n.e(9161).then(n.bind(n,94085)),"@site/docs/FluxBuilder/Features/firebase-settings.md",94085],"48c5b6ab":[()=>n.e(3940).then(n.bind(n,89730)),"@site/docs/FluxBuilder/Features/google-analytics.md",89730],"51e164cb":[()=>n.e(8570).then(n.bind(n,48737)),"@site/docs/FluxBuilder/Build/build-your-app-demo.md",48737],54239030:[()=>Promise.all([n.e(1068),n.e(2380)]).then(n.bind(n,57576)),"@site/docs/FluxBuilder/Design/advance-design-config.md",57576],"55efd640":[()=>n.e(3427).then(n.bind(n,34194)),"@site/docs/FluxBuilder/Features/paystack-payment.md",34194],"5883f7d3":[()=>n.e(5073).then(n.bind(n,24743)),"@site/docs/FluxBuilder/Features/smart-chat.md",24743],"5896791f":[()=>Promise.all([n.e(1068),n.e(2879)]).then(n.bind(n,53200)),"@site/docs/FluxBuilder/Integration/wordpress-api.md",53200],"59fcc175":[()=>n.e(230).then(n.bind(n,37554)),"@site/docs/FluxBuilder/Features/paytm-payment.md",37554],"5ccf90cd":[()=>n.e(5450).then(n.bind(n,60575)),"@site/docs/FluxBuilder/Features/google-maps.md",60575],"5f7b5334":[()=>n.e(9268).then(n.bind(n,54300)),"@site/docs/FluxBuilder/Features/shopify-payment.md",54300],"6465ff47":[()=>Promise.all([n.e(1068),n.e(4099)]).then(n.bind(n,11390)),"@site/docs/FluxBuilder/Integration/not-have-a-website.md",11390],"6a4007f2":[()=>Promise.all([n.e(1068),n.e(1576)]).then(n.bind(n,4322)),"@site/docs/Agency/agency-git-repository.md",4322],"6c1b0283":[()=>n.e(3222).then(n.bind(n,81901)),"@site/docs/FluxBuilder/Features/tap-payment.md",81901],"6d7af5f0":[()=>n.e(1171).then(n.bind(n,48375)),"@site/docs/FluxBuilder/Integration/prestashop-api.md",48375],"717f63c6":[()=>n.e(7991).then(n.bind(n,30898)),"@site/docs/FluxBuilder/Features/firebase-remote-config.md",30898],"75ad770b":[()=>Promise.all([n.e(1068),n.e(1411)]).then(n.bind(n,18190)),"@site/docs/FluxBuilder/Design/multi-languages.md",18190],"77914daf":[()=>n.e(9271).then(n.bind(n,72664)),"@site/docs/FluxBuilder/Build/create-appstore-key-to-upload-testflight.md",72664],"78f058bd":[()=>n.e(796).then(n.bind(n,90094)),"@site/docs/FluxBuilder/Features/push-notifications-via-onesignal.md",90094],"7df315f3":[()=>Promise.all([n.e(1068),n.e(1276)]).then(n.bind(n,75561)),"@site/docs/FluxBuilder/Integration/listing-api.md",75561],"8a7f63cf":[()=>n.e(8721).then(n.bind(n,51449)),"@site/docs/FluxBuilder/Integration/app-performance.md",51449],"91cbc7bb":[()=>Promise.all([n.e(1068),n.e(6108)]).then(n.bind(n,85726)),"@site/docs/Agency/agency.md",85726],"9282e133":[()=>Promise.all([n.e(1068),n.e(5651)]).then(n.bind(n,1897)),"@site/docs/FluxBuilder/Build/team-id-and-ios-bundle-id.md",1897],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"97fb08de":[()=>n.e(5846).then(n.t.bind(n,83769,19)),"/home/runner/work/fluxbuilder-docs.github.io/fluxbuilder-docs.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],"9f30c2ea":[()=>n.e(9698).then(n.bind(n,38643)),"@site/docs/FluxBuilder/Features/min-max-quantities.md",38643],a1429723:[()=>n.e(3556).then(n.bind(n,23219)),"@site/docs/FluxBuilder/plugins.md",23219],a1c937c4:[()=>Promise.all([n.e(1068),n.e(4331)]).then(n.bind(n,91191)),"@site/docs/Agency/agency-build-on-cloud.md",91191],a2227a88:[()=>Promise.all([n.e(1068),n.e(5217)]).then(n.bind(n,43909)),"@site/docs/FluxBuilder/Design/update-app-without-republishing.md",43909],a33d20ee:[()=>n.e(5537).then(n.bind(n,37440)),"@site/docs/FluxBuilder/changelog.md",37440],a3b59734:[()=>n.e(3815).then(n.bind(n,68572)),"@site/docs/FluxBuilder/Features/ajax-search-pro.md",68572],a9cce661:[()=>Promise.all([n.e(1068),n.e(2251)]).then(n.bind(n,96550)),"@site/docs/FluxBuilder/Features/paypal.md",96550],add189bc:[()=>Promise.all([n.e(1068),n.e(4950)]).then(n.bind(n,85082)),"@site/docs/FluxBuilder/Features/maintenance-mode.md",85082],ae3d1e78:[()=>n.e(6306).then(n.bind(n,89838)),"@site/docs/FluxBuilder/Features/flutterwave-payment.md",89838],b1da6085:[()=>n.e(9447).then(n.bind(n,63749)),"@site/docs/FluxBuilder/features.md",63749],b6e3e71c:[()=>Promise.all([n.e(1068),n.e(7771)]).then(n.bind(n,22345)),"@site/docs/FluxBuilder/dark-theme.md",22345],b7dd5104:[()=>n.e(3504).then(n.bind(n,75513)),"@site/docs/Onboarding.md",75513],b95fe4eb:[()=>n.e(4866).then(n.bind(n,6703)),"@site/docs/FluxBuilder/Features/advertisements.md",6703],bbbf7823:[()=>Promise.all([n.e(1068),n.e(9799)]).then(n.bind(n,16173)),"@site/docs/FluxBuilder/Features/social-login.md",16173],bea757bd:[()=>Promise.all([n.e(1068),n.e(6134)]).then(n.bind(n,60344)),"@site/docs/Agency/agency-products.md",60344],c1693bb3:[()=>Promise.all([n.e(1068),n.e(3042)]).then(n.bind(n,77791)),"@site/docs/FluxBuilder/Features/firebase-cloud-messaging-API.md",77791],c75af2ba:[()=>Promise.all([n.e(1068),n.e(9025)]).then(n.bind(n,62347)),"@site/docs/FluxBuilder/Build/build-and-publish-your-app.md",62347],d56b1fc4:[()=>n.e(9218).then(n.bind(n,45016)),"@site/docs/FluxBuilder/Features/nearest-stores.md",45016],d5e30f8b:[()=>n.e(3907).then(n.bind(n,11359)),"@site/docs/FluxBuilder/Features/openai-input-key.md",11359],d7b4e949:[()=>Promise.all([n.e(1068),n.e(7254)]).then(n.bind(n,84760)),"@site/docs/FluxBuilder/Integration/delivery-boy-plugin.md",84760],db02e296:[()=>n.e(912).then(n.bind(n,13535)),"@site/docs/FluxBuilder/Features/stripe.md",13535],db4c7cf9:[()=>Promise.all([n.e(1068),n.e(4887)]).then(n.bind(n,74858)),"@site/docs/Agency/agency-templates.md",74858],e2c1f13b:[()=>Promise.all([n.e(1068),n.e(8716)]).then(n.bind(n,85539)),"@site/docs/FluxBuilder/Design/app-translation.md",85539],e5843db7:[()=>Promise.all([n.e(1068),n.e(8885)]).then(n.bind(n,43565)),"@site/docs/FluxBuilder/Integration/create-your-app.md",43565],e68c5d74:[()=>Promise.all([n.e(1068),n.e(9158)]).then(n.bind(n,45246)),"@site/docs/FluxBuilder/download-and-install.md",45246],eaac86e5:[()=>Promise.all([n.e(1068),n.e(3132)]).then(n.bind(n,30991)),"@site/docs/FluxBuilder/Integration/app-activation.md",30991],eb3b6269:[()=>Promise.all([n.e(1068),n.e(8979)]).then(n.bind(n,34495)),"@site/docs/Agency/agency-customers.md",34495],ed46eeda:[()=>n.e(1523).then(n.bind(n,53075)),"@site/docs/FluxBuilder/Integration/strapi-api-settings.md",53075],ef5bcf73:[()=>n.e(459).then(n.bind(n,86751)),"@site/docs/FluxBuilder/Features/firebase-realtime-chat.md",86751],f06d4797:[()=>n.e(8385).then(n.t.bind(n,12776,19)),"/home/runner/work/fluxbuilder-docs.github.io/fluxbuilder-docs.github.io/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",12776],f256bbf5:[()=>n.e(5216).then(n.bind(n,4094)),"@site/docs/FluxBuilder/Features/assign-orders-to-delivery-boy.md",4094],f4357972:[()=>n.e(8453).then(n.bind(n,21283)),"@site/docs/FluxBuilder/Features/push-notifications-via-firebase.md",21283],f6ac05a8:[()=>n.e(6544).then(n.bind(n,35829)),"@site/docs/Agency/agency-developer.md",35829],f81ef8f2:[()=>Promise.all([n.e(1068),n.e(5779)]).then(n.bind(n,46732)),"@site/docs/FluxBuilder/Integration/woocommerce-api.md",46732],f95f68f8:[()=>n.e(7102).then(n.bind(n,84989)),"@site/docs/FluxBuilder/faq.md",84989],fe0a5656:[()=>Promise.all([n.e(1068),n.e(4714)]).then(n.bind(n,30453)),"@site/docs/FluxBuilder/Design/design-app-branding.md",30453],fe2e0f87:[()=>n.e(7917).then(n.bind(n,65394)),"@site/docs/FluxBuilder/Features/openai-supabase-server.md",65394]};function u(e){let{error:t,retry:n,pastDelay:a}=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"))):a?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 c=n(99670),d=n(30226);function p(e,t){if("*"===e)return o()({loading:u,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const i=l[e+"-"+t],p={},f=[],m=[],h=(0,c.Z)(i);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]))})),o().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const o=JSON.parse(JSON.stringify(i));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)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 a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const l=o.__comp;delete o.__comp;const s=o.__context;return delete o.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},o,n)))}})}const f=[{path:"/search",component:p("/search","069"),exact:!0},{path:"/",component:p("/","9d5"),routes:[{path:"/",component:p("/","762"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advance-design-config",component:p("/advance-design-config","ad8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advertisements",component:p("/advertisements","aa2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency",component:p("/agency","375"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency-build-on-cloud",component:p("/agency-build-on-cloud","4ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency-customers",component:p("/agency-customers","905"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency-developer",component:p("/agency-developer","678"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency-git-repository",component:p("/agency-git-repository","dc7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency-mail-settings",component:p("/agency-mail-settings","1e6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency-products",component:p("/agency-products","e53"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency-settings",component:p("/agency-settings","5f1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/agency-templates",component:p("/agency-templates","6e3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/ajax-search-pro",component:p("/ajax-search-pro","e39"),exact:!0,sidebar:"tutorialSidebar"},{path:"/app-activation",component:p("/app-activation","120"),exact:!0,sidebar:"tutorialSidebar"},{path:"/app-performance",component:p("/app-performance","98a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/app-translation",component:p("/app-translation","4e6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/assign-orders-to-delivery-boy",component:p("/assign-orders-to-delivery-boy","32d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/build-and-publish-your-app",component:p("/build-and-publish-your-app","f03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/build-your-app-demo",component:p("/build-your-app-demo","bfd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/changelog",component:p("/changelog","7bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/config-app-features",component:p("/config-app-features","0fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/create-appstore-key-to-upload-testflight",component:p("/create-appstore-key-to-upload-testflight","621"),exact:!0,sidebar:"tutorialSidebar"},{path:"/create-keystore-file",component:p("/create-keystore-file","51a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/create-your-app",component:p("/create-your-app","cc2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/customize-your-app",component:p("/customize-your-app","826"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dark-theme",component:p("/dark-theme","a3b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/delivery-boy-plugin",component:p("/delivery-boy-plugin","594"),exact:!0,sidebar:"tutorialSidebar"},{path:"/design-app-branding",component:p("/design-app-branding","158"),exact:!0,sidebar:"tutorialSidebar"},{path:"/download-and-install",component:p("/download-and-install","e1c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dynamic-link",component:p("/dynamic-link","718"),exact:!0,sidebar:"tutorialSidebar"},{path:"/e7184bfb-1160-42b0-ac68-561a2740d9e6",component:p("/e7184bfb-1160-42b0-ac68-561a2740d9e6","81a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/faq",component:p("/faq","5d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/features",component:p("/features","910"),exact:!0,sidebar:"tutorialSidebar"},{path:"/firebase-cloud-messaging-API",component:p("/firebase-cloud-messaging-API","aa4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/firebase-realtime-chat",component:p("/firebase-realtime-chat","a7a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/firebase-remote-config",component:p("/firebase-remote-config","844"),exact:!0,sidebar:"tutorialSidebar"},{path:"/firebase-settings",component:p("/firebase-settings","70f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/flutterwave-payment",component:p("/flutterwave-payment","e66"),exact:!0,sidebar:"tutorialSidebar"},{path:"/gdpr-compliance",component:p("/gdpr-compliance","9e8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/google-analytics",component:p("/google-analytics","ec9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/google-maps",component:p("/google-maps","b6d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-get-support",component:p("/how-to-get-support","6da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/import-export-and-other",component:p("/import-export-and-other","9e2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/judgeme-review",component:p("/judgeme-review","29f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/listing-api",component:p("/listing-api","373"),exact:!0,sidebar:"tutorialSidebar"},{path:"/magento-api",component:p("/magento-api","d66"),exact:!0,sidebar:"tutorialSidebar"},{path:"/maintenance-mode",component:p("/maintenance-mode","219"),exact:!0,sidebar:"tutorialSidebar"},{path:"/min-max-quantities",component:p("/min-max-quantities","597"),exact:!0,sidebar:"tutorialSidebar"},{path:"/multi-languages",component:p("/multi-languages","080"),exact:!0,sidebar:"tutorialSidebar"},{path:"/nearest-stores",component:p("/nearest-stores","1b5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/not-have-a-website",component:p("/not-have-a-website","ac4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/openai-input-key",component:p("/openai-input-key","3b9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/openai-subscription",component:p("/openai-subscription","585"),exact:!0,sidebar:"tutorialSidebar"},{path:"/openai-supabase-server",component:p("/openai-supabase-server","0b6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/opencart-api",component:p("/opencart-api","92a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/paypal",component:p("/paypal","fa1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/paystack-payment",component:p("/paystack-payment","e2d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/paytm-payment",component:p("/paytm-payment","2c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins",component:p("/plugins","d0f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/prestashop-api",component:p("/prestashop-api","646"),exact:!0,sidebar:"tutorialSidebar"},{path:"/product-detail-settings",component:p("/product-detail-settings","be0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/push-notifications-via-firebase",component:p("/push-notifications-via-firebase","58b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/push-notifications-via-onesignal",component:p("/push-notifications-via-onesignal","730"),exact:!0,sidebar:"tutorialSidebar"},{path:"/search-nearby-vendors-wcfm",component:p("/search-nearby-vendors-wcfm","69d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/sha-1-and-sha-256",component:p("/sha-1-and-sha-256","9ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/shopify-access-token",component:p("/shopify-access-token","277"),exact:!0,sidebar:"tutorialSidebar"},{path:"/shopify-payment",component:p("/shopify-payment","1fb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/sign-up-and-login",component:p("/sign-up-and-login","f34"),exact:!0,sidebar:"tutorialSidebar"},{path:"/smart-chat",component:p("/smart-chat","de5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/social-login",component:p("/social-login","1da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/splash-screen",component:p("/splash-screen","26b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/strapi-api-settings",component:p("/strapi-api-settings","8be"),exact:!0,sidebar:"tutorialSidebar"},{path:"/stripe",component:p("/stripe","4ea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tap-payment",component:p("/tap-payment","c5e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/team-id-and-ios-bundle-id",component:p("/team-id-and-ios-bundle-id","035"),exact:!0,sidebar:"tutorialSidebar"},{path:"/update-app-without-republishing",component:p("/update-app-without-republishing","923"),exact:!0,sidebar:"tutorialSidebar"},{path:"/woocommerce-api",component:p("/woocommerce-api","d02"),exact:!0,sidebar:"tutorialSidebar"},{path:"/woocommerce-appointment",component:p("/woocommerce-appointment","e67"),exact:!0,sidebar:"tutorialSidebar"},{path:"/wordpress-api",component:p("/wordpress-api","85b"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"*",component:p("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(67294);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},97221:(e,t,n)=>{"use strict";var r=n(67294),a=n(73935),i=n(73727),o=n(70405),l=n(10412);const s=[n(32497),n(3310),n(18320),n(13956),n(59789)];var u=n(723),c=n(76775),d=n(18790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(87462),m=n(35742),h=n(52263),g=n(44996),b=n(86668),v=n(1944),y=n(94711),w=n(19727),k=n(43320),E=n(18780),S=n(90197);function x(){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:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,c.TH)();return e+(0,E.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),i=t?""+n+t:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:i}),r.createElement("link",{rel:"canonical",href:i}))}function C(){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:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(_,null),r.createElement(x,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const T=new Map;function L(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var P=n(98934),A=n(58940);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{var r,a;const i=null!=(r=null==(a=t.default)?void 0:a[e])?r:t[e];return null==i?void 0:i(...n)}));return()=>a.forEach((e=>null==e?void 0:e()))}const O=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,i=t.search===n.search;if(r&&a&&!i)return;const{hash:o}=t;if(o){const e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);null==t||t.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class I extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("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=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(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(O,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const F=I,D="__docusaurus-base-url-issue-banner-container",B="__docusaurus-base-url-issue-banner-suggestion-container",M="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return"\nwindow['"+M+"'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['"+M+"'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('"+D+"');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = "+JSON.stringify(function(e){return'\n
    \n

    Your Docusaurus site did not load properly.

    \n

    A very common reason is a wrong site baseUrl configuration.

    \n

    Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+'

    \n

    We suggest trying baseUrl =

    \n
    \n'}(e)).replace(/{window[M]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:i}}=(0,h.Z)(),o=(0,g.Z)(e),{htmlLang:l,direction:s}=i[a];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:o}))}var $=n(44763),H=n(72389);function G(){const e=(0,H.Z)();return r.createElement(m.Z,null,r.createElement("html",{"data-has-hydrated":e}))}function Z(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement($.Z,null,r.createElement(A.M,null,r.createElement(P.t,null,r.createElement(p,null,r.createElement(q,null),r.createElement(C,null),r.createElement(U,null),r.createElement(F,{location:L(t)},e)),r.createElement(G,null))))}var Q=n(16887);const V=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r,a;if("undefined"==typeof document)return void n();const i=document.createElement("link");i.setAttribute("rel","prefetch"),i.setAttribute("href",e),i.onload=()=>t(),i.onerror=()=>n();const o=null!=(r=document.getElementsByTagName("head")[0])?r:null==(a=document.getElementsByName("script")[0])?void 0:a.parentNode;null==o||o.appendChild(i)}))}: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 W=n(99670);const K=new Set,Y=new Set,X=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},J={prefetch(e){if(!(e=>!X()&&!Y.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,W.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?V(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!X()&&!Y.has(e))(e)&&(Y.add(e),N(e))},ee=Object.freeze(J);if(l.Z.canUseDOM){window.docusaurus=ee;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(o.B6,null,r.createElement(i.VK,null,r.createElement(Z,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(67294),a=n(36809);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"Onboarding","docs":[{"id":"Agency/agency","path":"/agency","sidebar":"tutorialSidebar"},{"id":"Agency/agency-build-on-cloud","path":"/agency-build-on-cloud","sidebar":"tutorialSidebar"},{"id":"Agency/agency-customers","path":"/agency-customers","sidebar":"tutorialSidebar"},{"id":"Agency/agency-developer","path":"/agency-developer","sidebar":"tutorialSidebar"},{"id":"Agency/agency-git-repository","path":"/agency-git-repository","sidebar":"tutorialSidebar"},{"id":"Agency/agency-mail-settings","path":"/agency-mail-settings","sidebar":"tutorialSidebar"},{"id":"Agency/agency-products","path":"/agency-products","sidebar":"tutorialSidebar"},{"id":"Agency/agency-settings","path":"/agency-settings","sidebar":"tutorialSidebar"},{"id":"Agency/agency-templates","path":"/agency-templates","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Build/build-and-publish-your-app","path":"/build-and-publish-your-app","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Build/build-your-app-demo","path":"/build-your-app-demo","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Build/create-appstore-key-to-upload-testflight","path":"/create-appstore-key-to-upload-testflight","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Build/create-keystore-file","path":"/create-keystore-file","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Build/sha-1-and-sha-256","path":"/sha-1-and-sha-256","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Build/team-id-and-ios-bundle-id","path":"/team-id-and-ios-bundle-id","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/changelog","path":"/changelog","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/dark-theme","path":"/dark-theme","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Design/advance-design-config","path":"/advance-design-config","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Design/app-translation","path":"/app-translation","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Design/design-app-branding","path":"/design-app-branding","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Design/multi-languages","path":"/multi-languages","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Design/product-detail-settings","path":"/product-detail-settings","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Design/splash-screen","path":"/splash-screen","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Design/update-app-without-republishing","path":"/update-app-without-republishing","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/download-and-install","path":"/download-and-install","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/faq","path":"/faq","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/features","path":"/features","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/advertisements","path":"/advertisements","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/ajax-search-pro","path":"/ajax-search-pro","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/assign-orders-to-delivery-boy","path":"/assign-orders-to-delivery-boy","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/config-app-features","path":"/config-app-features","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/dynamic-link","path":"/dynamic-link","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/firebase-cloud-messaging-API","path":"/firebase-cloud-messaging-API","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/firebase-realtime-chat","path":"/firebase-realtime-chat","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/Firebase-Realtime-Chat","path":"/e7184bfb-1160-42b0-ac68-561a2740d9e6","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/firebase-remote-config","path":"/firebase-remote-config","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/firebase-settings","path":"/firebase-settings","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/flutterwave-payment","path":"/flutterwave-payment","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/gdpr-compliance","path":"/gdpr-compliance","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/google-analytics","path":"/google-analytics","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/google-maps","path":"/google-maps","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/judgeme-review","path":"/judgeme-review","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/maintenance-mode","path":"/maintenance-mode","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/min-max-quantities","path":"/min-max-quantities","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/nearest-stores","path":"/nearest-stores","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/openai-input-key","path":"/openai-input-key","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/openai-subscription","path":"/openai-subscription","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/openai-supabase-server","path":"/openai-supabase-server","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/paypal","path":"/paypal","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/paystack-payment","path":"/paystack-payment","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/paytm-payment","path":"/paytm-payment","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/push-notifications-via-firebase","path":"/push-notifications-via-firebase","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/push-notifications-via-onesignal","path":"/push-notifications-via-onesignal","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/search-nearby-vendors-wcfm","path":"/search-nearby-vendors-wcfm","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/shopify-payment","path":"/shopify-payment","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/smart-chat","path":"/smart-chat","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/social-login","path":"/social-login","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/stripe","path":"/stripe","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/tap-payment","path":"/tap-payment","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Features/woocommerce-appointment","path":"/woocommerce-appointment","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/how-to-get-support","path":"/how-to-get-support","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/app-activation","path":"/app-activation","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/app-performance","path":"/app-performance","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/create-your-app","path":"/create-your-app","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/customize-your-app","path":"/customize-your-app","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/delivery-boy-plugin","path":"/delivery-boy-plugin","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/import-export-and-other","path":"/import-export-and-other","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/listing-api","path":"/listing-api","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/magento-api","path":"/magento-api","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/not-have-a-website","path":"/not-have-a-website","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/opencart-api","path":"/opencart-api","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/prestashop-api","path":"/prestashop-api","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/shopify-access-token","path":"/shopify-access-token","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/sign-up-and-login","path":"/sign-up-and-login","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/strapi-api-settings","path":"/strapi-api-settings","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/woocommerce-api","path":"/woocommerce-api","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/Integration/wordpress-api","path":"/wordpress-api","sidebar":"tutorialSidebar"},{"id":"FluxBuilder/plugins","path":"/plugins","sidebar":"tutorialSidebar"},{"id":"Onboarding","path":"/","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/","label":"Onboarding"}}}}],"breadcrumbs":true}}}'),o=JSON.parse('{"defaultLocale":"en","locales":["en","fr"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en-US","calendar":"gregory","path":"en"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.36.0"}}}'),u={siteConfig:a.Z,siteMetadata:s,globalData:i,i18n:o,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),a=n(10412),i=n(35742),o=n(18780),l=n(70179);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(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(i.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(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){var n;const e={error:t,tryAgain:()=>this.setState({error:null})};return(null!=(n=this.props.fallback)?n:d)(e)}return null!=e?e:null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(70405);function i(e){return r.createElement(a.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(87462),a=n(67294),i=n(73727),o=n(18780),l=n(52263),s=n(13919),u=n(10412);const c=a.createContext({collectLink:()=>{}});var d=n(44996);function p(e,t){var n,p;let{isNavLink:f,to:m,href:h,activeClassName:g,isActive:b,"data-noBrokenLinkCheck":v,autoAddBaseUrl:y=!0,...w}=e;const{siteConfig:{trailingSlash:k,baseUrl:E}}=(0,l.Z)(),{withBaseUrl:S}=(0,d.C)(),x=(0,a.useContext)(c),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>_.current));const C=m||h;const T=(0,s.Z)(C),L=null==C?void 0:C.replace("pathname://","");let P=void 0!==L?(A=L,y&&(e=>e.startsWith("/"))(A)?S(A):A):void 0;var A;P&&T&&(P=(0,o.applyTrailingSlash)(P,{trailingSlash:k,baseUrl:E}));const R=(0,a.useRef)(!1),O=f?i.OL:i.rU,N=u.Z.canUseIntersectionObserver,I=(0,a.useRef)(),F=()=>{R.current||null==P||(window.docusaurus.preload(P),R.current=!0)};(0,a.useEffect)((()=>(!N&&T&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&I.current&&I.current.disconnect()})),[I,P,N,T]);const D=null!=(n=null==(p=P)?void 0:p.startsWith("#"))&&n,B=!P||!T||D;return B||v||x.collectLink(P),B?a.createElement("a",(0,r.Z)({ref:_,href:P},C&&!T&&{target:"_blank",rel:"noopener noreferrer"},w)):a.createElement(O,(0,r.Z)({},w,{onMouseEnter:F,onTouchStart:F,innerRef:e=>{_.current=e,N&&e&&T&&(I.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))}))})),I.current.observe(e))},to:P},f&&{isActive:b,activeClassName:g}))}const f=a.forwardRef(p)},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(67294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0: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 i=n(57529);function o(e){var t,n;let{id:r,message:a}=e;if(void 0===r&&void 0===a)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=i[null!=r?r:a])?n:a)?t:r}function l(e,t){let{message:n,id:r}=e;return a(o({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:i}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=o({message:t,id:n});return r.createElement(r.Fragment,null,a(l,i))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>o,Z:()=>l});var r=n(67294),a=n(52263),i=n(13919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:o=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,i.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(58940);function i(){return(0,r.useContext)(a._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(98934);function i(){return(0,r.useContext)(a._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[a,i]=n;const o=r?r+"."+a:a;var l;"object"==typeof(l=i)&&l&&Object.keys(l).length>0?e(i,o):t[o]=i}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(67294);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),o=(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,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return r.createElement(a.Provider,{value:o},t)}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>p,_r:()=>c,Jo:()=>g,zh:()=>d,yW:()=>m,gB:()=>f});var r=n(76775),a=n(52263),i=n(29935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.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),a=null==n?void 0:n.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>{var e;return null!=(e=o("docusaurus-plugin-content-docs"))?e:u},d=e=>function(e,t,n){void 0===t&&(t=i.m),void 0===n&&(n={});const r=o(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=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})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&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 i}(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)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),a=n(36809);!function(e){const{themeConfig:{prism:t}}=a.Z,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)("./prism-"+e)})),delete globalThis.Prism}(r.Z)},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294);const a="iconExternalLink_nPIU";function i(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:a},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"}))}},70179:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Jt});var r=n(67294),a=n(86010),i=n(44763),o=n(87462),l=n(76775),s=n(95999),u=n(85936);const c="__docusaurus_skipToContent_fallback";function d(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=null!=(n=document.querySelector("main:first-of-type"))?n:document.getElementById(c);var n;t&&d(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&d(e.current)})),{containerRef:e,onClick:n}}const f=(0,s.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 m(e){var t;const n=null!=(t=e.children)?t:f,{containerRef:a,onClick:i}=p();return r.createElement("div",{ref:a,role:"region","aria-label":f},r.createElement("a",(0,o.Z)({},e,{href:"#"+c,onClick:i}),n))}var h=n(1944),g=n(35281),b=n(19727);const v="skipToContent_fXgn";function y(){return r.createElement(m,{className:v})}var w=n(86668),k=n(59689);function E(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:i=1.2,className:l,...s}=e;return r.createElement("svg",(0,o.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:i},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S="closeButton_CVFx";function x(e){return r.createElement("button",(0,o.Z)({type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",S,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const _="content_knG7";function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,o.Z)({},e,{className:(0,a.Z)(_,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T="announcementBar_mb4j",L="announcementBarPlaceholder_vyr4",P="announcementBarClose_gvF7",A="announcementBarContent_xLdY";function R(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:i,isCloseable:o}=e;return r.createElement("div",{className:T,style:{backgroundColor:a,color:i},role:"banner"},o&&r.createElement("div",{className:L}),r.createElement(C,{className:A}),o&&r.createElement(x,{onClick:n,className:P}))}var O=n(72961),N=n(12466);var I=n(902),F=n(13102);const D=r.createContext(null);function B(e){let{children:t}=e;const n=function(){const e=(0,O.e)(),t=(0,F.HY)(),[n,a]=(0,r.useState)(!1),i=null!==t.component,o=(0,I.D9)(i);return(0,r.useEffect)((()=>{i&&!o&&a(!0)}),[i,o]),(0,r.useEffect)((()=>{i?e.shown||a(!0):a(!1)}),[e.shown,i]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(D.Provider,{value:n},t)}function M(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function j(){const e=(0,r.useContext)(D);if(!e)throw new I.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),i=(0,F.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:M(i)})),[a,i,t])}function z(e){let{header:t,primaryMenu:n,secondaryMenu:i}=e;const{shown:o}=j();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},i)))}var U=n(92949),q=n(72389);function $(e){return r.createElement("svg",(0,o.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 H(e){return r.createElement("svg",(0,o.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 G={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,buttonClassName:n,value:i,onChange:o}=e;const l=(0,q.Z)(),u=(0,s.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"===i?(0,s.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(G.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",G.toggleButton,!l&&G.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===i?"light":"dark"),disabled:!l,title:u,"aria-label":u,"aria-live":"polite"},r.createElement($,{className:(0,a.Z)(G.toggleIcon,G.lightToggleIcon)}),r.createElement(H,{className:(0,a.Z)(G.toggleIcon,G.darkToggleIcon)})))}const Q=r.memo(Z),V="darkNavbarColorModeToggle_X3D1";function W(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:i,setColorMode:o}=(0,U.I)();return a?null:r.createElement(Q,{className:t,buttonClassName:"dark"===n?V:void 0,value:i,onChange:o})}var K=n(21327);function Y(){return r.createElement(K.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function X(){const e=(0,O.e)();return r.createElement("button",{type:"button","aria-label":(0,s.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 J(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Y,null),r.createElement(W,{className:"margin-right--md"}),r.createElement(X,null))}var ee=n(39960),te=n(44996),ne=n(13919);function re(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ae=n(39471);function ie(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:i,label:l,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,te.Z)(a),f=(0,te.Z)(t),m=(0,te.Z)(i,{forcePrependBaseUrl:!0}),h=l&&i&&!(0,ne.Z)(i),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,l,h&&r.createElement(ae.Z,u&&{width:12,height:12}))};return i?r.createElement(ee.Z,(0,o.Z)({href:c?m:i},d,g)):r.createElement(ee.Z,(0,o.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?re(n,t.pathname):t.pathname.startsWith(f)},d,g))}function oe(e){let{className:t,isDropdownItem:n=!1,...i}=e;const l=r.createElement(ie,(0,o.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,l):l}function le(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ie,(0,o.Z)({className:(0,a.Z)("menu__link",t)},i)))}function se(e){var t;let{mobile:n=!1,position:a,...i}=e;const l=n?le:oe;return r.createElement(l,(0,o.Z)({},i,{activeClassName:null!=(t=i.activeClassName)?t:n?"menu__link--active":"navbar__link--active"}))}var ue=n(86043),ce=n(48596),de=n(52263);function pe(e,t){return e.some((e=>function(e,t){return!!(0,ce.Mg)(e.to,t)||!!re(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function fe(e){var t;let{items:n,position:i,className:l,onClick:s,...u}=e;const c=(0,r.useRef)(null),[d,p]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&p(!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,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===i,"dropdown--show":d})},r.createElement(ie,(0,o.Z)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:u.to?void 0:"#",className:(0,a.Z)("navbar__link",l)},u,{onClick:u.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),p(!d))}}),null!=(t=u.children)?t:u.label),r.createElement("ul",{className:"dropdown__menu"},n.map(((e,t)=>r.createElement(pt,(0,o.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function me(e){var t;let{items:n,className:i,position:s,onClick:u,...c}=e;const d=function(){const{siteConfig:{baseUrl:e}}=(0,de.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),p=pe(n,d),{collapsed:f,toggleCollapsed:m,setCollapsed:h}=(0,ue.u)({initialState:()=>!p});return(0,r.useEffect)((()=>{p&&h(!p)}),[d,p,h]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ie,(0,o.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",i)},c,{onClick:e=>{e.preventDefault(),m()}}),null!=(t=c.children)?t:c.label),r.createElement(ue.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},n.map(((e,t)=>r.createElement(pt,(0,o.Z)({mobile:!0,isDropdownItem:!0,onClick:u,activeClassName:"menu__link--active"},e,{key:t}))))))}function he(e){let{mobile:t=!1,...n}=e;const a=t?me:fe;return r.createElement(a,n)}var ge=n(94711);function be(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),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 ve="iconLanguage_nlXk";var ye=n(61029),we=n(10412),ke=n(60373),Ee=n(80143),Se=n(90022),xe=n(98202),_e=n(73926),Ce=n(91073),Te=n(82539),Le=n(10726);const Pe="searchBar_RVTs",Ae="dropdownMenu_qbY6",Re="searchBarLeft_MXDe",Oe="suggestion_fB_2",Ne="cursor_eG29",Ie="hitTree_kk6K",Fe="hitIcon_a7Zy",De="hitPath_ieM4",Be="noResultsIcon_EBY5",Me="hitFooter_E9YW",je="hitWrapper_sAK8",ze="hitTitle_vyVt",Ue="hitAction_NqkB",qe="noResults_l6Q3",$e="searchBarContainer_NW3z",He="searchBarLoadingRing_YnHq",Ge="searchClearButton_qk4g",Ze="searchIndexLoading_EJ1f",Qe="searchHintContainer_Pkmr",Ve="searchHint_iIMx",We="focused_OWtg",Ke="input_FOTf",Ye="hint_URu1",Xe="suggestions_X8XU",Je="dataset_QiCy",et="empty_eITn";function tt(e){let{document:t,type:n,page:r,metadata:a,tokens:i,isInterOfTree:o,isLastOfTree:l}=e;const s=0===n,u=1===n,c=[];o?c.push(''):l&&c.push('');const d=c.map((e=>''+e+"")),p=''+(s?'':u?'':'')+"",f=[''+(0,Le.o)(t.t,(0,Ce.m)(a,"t"),i)+""];if(!o&&!l&&ye.H6){var m;const e=r?(null!=(m=r.b)?m:[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;f.push(''+(0,_e.e)(null!=e?e:[])+"")}else s||f.push(''+(0,Te.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),i)+"");const h='';return[...d,p,'',...f,"",h].join("")}function nt(){return''+(0,s.I)({id:"theme.SearchBar.noResultsText",message:"No results"})+""}var rt=n(80311);async function at(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,68443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const it="_highlight";const ot=function(e){var t,n;let{handleSearchBarToggle:i}=e;const{siteConfig:{baseUrl:o}}=(0,de.Z)(),u=(0,Ee.gA)();let c=o;try{var d;const{preferredVersion:e}=(0,ke.J)(null!=(d=null==u?void 0:u.pluginId)?d:ye.gQ);e&&!e.isLast&&(c=e.path+"/")}catch(M){if(ye.l9&&!(M instanceof I.i6))throw M}const p=(0,l.k6)(),f=(0,l.TH)(),m=(0,r.useRef)(null),h=(0,r.useRef)(new Map),g=(0,r.useRef)(!1),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(!1),[k,E]=(0,r.useState)(""),S=(0,r.useRef)(null),x=(0,r.useRef)(""),[_,C]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ye.Kc))return;let e="";if(f.pathname.startsWith(c)){const t=f.pathname.substring(c.length),n=ye.Kc.find((e=>t===e||t.startsWith(e+"/")));n&&(e=n)}x.current!==e&&(h.current.delete(e),x.current=e),C(e)}),[f.pathname,c]);const T=!!ye.hG&&Array.isArray(ye.Kc)&&""===_,L=(0,r.useCallback)((async()=>{var e;if(T||h.current.get(_))return;h.current.set(_,"loading"),null==(e=S.current)||e.autocomplete.destroy(),v(!0);const[{wrappedIndexes:t,zhDictionary:n},r]=await Promise.all([(0,Se.w)(c,_),at()]);if(S.current=r(m.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,a.Z)(Pe,{[Re]:"left"===ye.pu}),noPrefix:!0,dropdownMenu:Ae,input:Ke,hint:Ye,suggestions:Xe,suggestion:Oe,cursor:Ne,dataset:Je,empty:et}},[{source:(0,xe.v)(t,n,ye.qo),templates:{suggestion:tt,empty:nt,footer:e=>{let{query:t,isEmpty:n}=e;if(n&&!_)return;const r=(e=>{let{query:t,isEmpty:n}=e;const r=document.createElement("a"),a=new URLSearchParams,i=(0,s.I)({id:"theme.SearchBar.seeAll",message:"See all results"}),l=(0,s.I)({id:"theme.SearchBar.seeAllOutsideContext",message:"See results outside {context}"},{context:_}),u=(0,s.I)({id:"theme.SearchBar.searchInContext",message:"See all results in {context}"},{context:_});let d;if(a.set("q",t),d=_&&n?l:_?u:i,Array.isArray(ye.Kc)&&!n&&a.set("ctx",_),c!==o){if(!c.startsWith(o))throw new Error("Version url '"+c+"' does not start with base url '"+o+"', this is a bug of `@easyops-cn/docusaurus-search-local`, please report it.");a.set("version",c.substring(o.length))}const f=o+"search?"+a.toString();return r.href=f,r.textContent=d,r.addEventListener("click",(e=>{var t;e.ctrlKey||e.metaKey||(e.preventDefault(),null==(t=S.current)||t.autocomplete.close(),p.push(f))})),r})({query:t,isEmpty:n}),a=document.createElement("div");return a.className=Me,a.appendChild(r),a}}}]).on("autocomplete:selected",(function(e,t){var n;let{document:{u:r,h:a},tokens:i}=t;null==(n=m.current)||n.blur();let o=r;if(ye.vc&&i.length>0){const e=new URLSearchParams;for(const t of i)e.append(it,t);o+="?"+e.toString()}a&&(o+=a),p.push(o)})).on("autocomplete:closed",(()=>{var e;null==(e=m.current)||e.blur()})),h.current.set(_,"done"),v(!1),g.current){const e=m.current;var i;if(e.value)null==(i=S.current)||i.autocomplete.open();e.focus()}}),[T,_,c,o,p]);(0,r.useEffect)((()=>{if(!ye.vc)return;const e=we.Z.canUseDOM?new URLSearchParams(f.search).getAll(it):[];setTimeout((()=>{var t;const n=document.querySelector("article");if(!n)return;const r=new ye.vc(n);r.unmark(),0!==e.length&&r.mark(e),E(e.join(" ")),null==(t=S.current)||t.autocomplete.setVal(e.join(" "))}))}),[f.search,f.pathname]);const[P,A]=(0,r.useState)(!1),R=(0,r.useCallback)((()=>{g.current=!0,L(),A(!0),null==i||i(!0)}),[i,L]),O=(0,r.useCallback)((()=>{A(!1),null==i||i(!1)}),[i]),N=(0,r.useCallback)((()=>{L()}),[L]),F=(0,r.useCallback)((e=>{E(e.target.value),e.target.value&&w(!0)}),[]),D=!!we.Z.canUseDOM&&/mac/i.test(null!=(t=null==(n=navigator.userAgentData)?void 0:n.platform)?t:navigator.platform);(0,r.useEffect)((()=>{if(!ye.AY)return;const e=e=>{var t;!(D?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),null==(t=m.current)||t.focus(),R())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[D,R]);const B=(0,r.useCallback)((()=>{var e;const t=new URLSearchParams(f.search);t.delete(it);const n=t.toString(),r=f.pathname+(""!=n?"?"+n:"")+f.hash;r!=f.pathname+f.search+f.hash&&p.push(r),E(""),null==(e=S.current)||e.autocomplete.setVal("")}),[f.pathname,f.search,f.hash,p]);return r.createElement("div",{className:(0,a.Z)("navbar__search",$e,{[Ze]:b&&y,[We]:P}),hidden:T},r.createElement("input",{placeholder:(0,s.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:N,onFocus:R,onBlur:O,onChange:F,ref:m,value:k}),r.createElement(rt.Z,{className:He}),ye.AY&&ye.t_&&(""!==k?r.createElement("button",{className:Ge,onClick:B},"\u2715"):we.Z.canUseDOM&&r.createElement("div",{className:Qe},r.createElement("kbd",{className:Ve},D?"\u2318":"ctrl"),r.createElement("kbd",{className:Ve},"K"))))},lt="searchBox_ZlJk";function st(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,lt)},t)}var ut=n(52802);const ct=e=>e.docs.find((t=>t.id===e.mainDocId));const dt={default:se,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...i}=e;const{i18n:{currentLocale:u,locales:c,localeConfigs:d}}=(0,de.Z)(),p=(0,ge.l)(),{search:f,hash:m}=(0,l.TH)(),h=[...n,...c.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===u?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[u].label;return r.createElement(he,(0,o.Z)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(be,{className:ve}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(st,{className:n},r.createElement(ot,null))},dropdown:he,html:function(e){let{value:t,className:n,mobile:i=!1,isDropdownItem:o=!1}=e;const l=o?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!i&&!o,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,Ee.Iw)(a),s=(0,ut.vY)(t,a);return null===s?null:r.createElement(se,(0,o.Z)({exact:!0},i,{isActive:()=>(null==l?void 0:l.path)===s.path||!(null==l||!l.sidebar)&&l.sidebar===s.sidebar,label:null!=n?n:s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,Ee.Iw)(a),s=(0,ut.oz)(t,a).link;if(!s)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(se,(0,o.Z)({exact:!0},i,{isActive:()=>(null==l?void 0:l.sidebar)===t,label:null!=n?n:s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const l=(0,ut.lO)(a)[0],s=null!=t?t:l.label,u=null!=n?n:(e=>e.docs.find((t=>t.id===e.mainDocId)))(l).path;return r.createElement(se,(0,o.Z)({},i,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:u,...c}=e;const{search:d,hash:p}=(0,l.TH)(),f=(0,Ee.Iw)(n),m=(0,Ee.gB)(n),{savePreferredVersionName:h}=(0,ke.J)(n),g=[...i,...m.map((e=>{var t;const n=null!=(t=f.alternateDocVersions[e.name])?t:ct(e);return{label:e.label,to:""+n.path+d+p,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...u],b=(0,ut.lO)(n)[0],v=t&&g.length>1?(0,s.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:ct(b).path;return g.length<=1?r.createElement(se,(0,o.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(he,(0,o.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function pt(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),i=dt[a];if(!i)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(i,n)}function ft(){const e=(0,O.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(pt,(0,o.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function mt(e){return r.createElement("button",(0,o.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(s.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 ht(){const e=0===(0,w.L)().navbar.items.length,t=j();return r.createElement(r.Fragment,null,!e&&r.createElement(mt,{onClick:()=>t.hide()}),t.content)}function gt(){const e=(0,O.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(z,{header:r.createElement(J,null),primaryMenu:r.createElement(ft,null),secondaryMenu:r.createElement(ht,null)}):null}const bt="navbarHideable_m1mJ",vt="navbarHidden_jGov";function yt(e){return r.createElement("div",(0,o.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function wt(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,w.L)(),o=(0,O.e)(),{navbarRef:l,isNavbarVisible:c}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),i=(0,r.useRef)(0),o=(0,r.useCallback)((e=>{null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,N.RF)(((t,r)=>{let{scrollY:o}=t;if(!e)return;if(o=l?n(!1):o+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:o,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,s.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[bt,!c&&vt],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":o.shown})},t,r.createElement(yt,{onClick:o.toggle}),r.createElement(gt,null))}var kt=n(18780);const Et="errorBoundaryError_a6uf";function St(e){return r.createElement("button",(0,o.Z)({type:"button"},e),r.createElement(s.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 xt(e){let{error:t}=e;const n=(0,kt.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Et},n)}class _t extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}function Ct(e){let{width:t=30,height:n=30,className:a,...i}=e;return r.createElement("svg",(0,o.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},i),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Tt(){const{toggle:e,shown:t}=(0,O.e)();return r.createElement("button",{onClick:e,"aria-label":(0,s.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(Ct,null))}const Lt="colorModeToggle_DEke";function Pt(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(_t,{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(pt,e)))))}function At(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 Rt(){const e=(0,O.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),i=t.find((e=>"search"===e.type));return r.createElement(At,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Tt,null),r.createElement(Y,null),r.createElement(Pt,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Pt,{items:a}),r.createElement(W,{className:Lt}),!i&&r.createElement(st,null,r.createElement(ot,null)))})}function Ot(){return r.createElement(wt,null,r.createElement(Rt,null))}function Nt(e){let{item:t}=e;const{to:n,href:a,label:i,prependBaseUrlToHref:l,...s}=t,u=(0,te.Z)(n),c=(0,te.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(ee.Z,(0,o.Z)({className:"footer__link-item"},a?{href:l?c:a}:{to:u},s),i,a&&!(0,ne.Z)(a)&&r.createElement(ae.Z,null))}function It(e){var t;let{item:n}=e;return n.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:n.html}}):r.createElement("li",{key:null!=(t=n.href)?t:n.to,className:"footer__item"},r.createElement(Nt,{item:n}))}function Ft(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(It,{key:t,item:e})))))}function Dt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Ft,{key:t,column:e}))))}function Bt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function Mt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Nt,{item:t})}function jt(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(Mt,{item:e}),t.length!==n+1&&r.createElement(Bt,null))))))}function zt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(Dt,{columns:t}):r.createElement(jt,{links:t})}var Ut=n(50941);const qt="footerLogoLink_BH7S";function $t(e){var t;let{logo:n}=e;const{withBaseUrl:i}=(0,te.C)(),o={light:i(n.src),dark:i(null!=(t=n.srcDark)?t:n.src)};return r.createElement(Ut.Z,{className:(0,a.Z)("footer__logo",n.className),alt:n.alt,sources:o,width:n.width,height:n.height,style:n.style})}function Ht(e){let{logo:t}=e;return t.href?r.createElement(ee.Z,{href:t.href,className:qt,target:t.target},r.createElement($t,{logo:t})):r.createElement($t,{logo:t})}function Gt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Zt(e){let{style:t,links:n,logo:i,copyright:o}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(i||o)&&r.createElement("div",{className:"footer__bottom text--center"},i&&r.createElement("div",{className:"margin-bottom--sm"},i),o)))}function Qt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:i}=e;return r.createElement(Zt,{style:i,links:n&&n.length>0&&r.createElement(zt,{links:n}),logo:a&&r.createElement(Ht,{logo:a}),copyright:t&&r.createElement(Gt,{copyright:t})})}const Vt=r.memo(Qt),Wt=(0,I.Qc)([U.S,k.pl,N.OC,ke.L5,h.VC,function(e){let{children:t}=e;return r.createElement(F.n2,null,r.createElement(O.M,null,r.createElement(B,null,t)))}]);function Kt(e){let{children:t}=e;return r.createElement(Wt,null,t)}function Yt(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(s.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(St,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(xt,{error:t})))))}const Xt="mainWrapper_z2l0";function Jt(e){const{children:t,noFooter:n,wrapperClassName:o,title:l,description:s}=e;return(0,b.t)(),r.createElement(Kt,null,r.createElement(h.d,{title:l,description:s}),r.createElement(y,null),r.createElement(R,null),r.createElement(Ot,null),r.createElement("div",{id:c,className:(0,a.Z)(g.k.wrapper.main,Xt,o)},r.createElement(i.Z,{fallback:e=>r.createElement(Yt,e)},t)),!n&&r.createElement(Vt,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(87462),a=n(67294),i=n(39960),o=n(44996),l=n(52263),s=n(86668),u=n(50941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const i={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){var t;const{siteConfig:{title:n}}=(0,l.Z)(),{navbar:{title:u,logo:d}}=(0,s.L)(),{imageClassName:p,titleClassName:f,...m}=e,h=(0,o.Z)((null==d?void 0:d.href)||"/"),g=u?"":n,b=null!=(t=null==d?void 0:d.alt)?t:g;return a.createElement(i.Z,(0,r.Z)({to:h},m,(null==d?void 0:d.target)&&{target:d.target}),d&&a.createElement(c,{logo:d,alt:b,imageClassName:p}),null!=u&&a.createElement("b",{className:f},u))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(35742);function i(e){let{locale:t,version:n,tag:i}=e;const o=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),i&&r.createElement("meta",{name:"docusaurus_tag",content:i}),o&&r.createElement("meta",{name:"docsearch:language",content:o}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),i&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:i}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(87462),a=n(67294),i=n(86010),o=n(72389),l=n(92949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,o.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,i.Z)(s.themedImage,s["themedImage--"+e],c)},p)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>h});var r=n(87462),a=n(67294),i=n(10412),o=n(91442);function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(null!=t&&t),i=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:i}}const s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const i=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){var t,n;const a=e.scrollHeight,i=null!=(t=null==r?void 0:r.duration)?t:function(e){if((0,o.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(a);return{transition:"height "+i+"ms "+(null!=(n=null==r?void 0:r.easing)?n:"ease-in-out"),height:a+"px"}}function l(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!i.current)return c(e,n),void(i.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!i.Z.canUseDOM)return e?s:u}function f(e){let{as:t="div",collapsed:n,children:r,animation:i,onCollapseTransitionEnd:o,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return d({collapsibleRef:u,collapsed:n,animation:i}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),null==o||o(n))},className:l},r)}function m(e){let{collapsed:t,...n}=e;const[i,o]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||o(!0)}),[t]),(0,a.useLayoutEffect)((()=>{i&&s(t)}),[i,t]),i?a.createElement(f,(0,r.Z)({},n,{collapsed:l})):null}function h(e){let{lazy:t,...n}=e;const r=t?m:f;return a.createElement(r,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(67294),a=n(72389),i=n(50012),o=n(902),l=n(86668);const s=(0,i.WA)("docusaurus.announcement.dismiss"),u=(0,i.WA)("docusaurus.announcement.id"),c=()=>"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,a.Z)(),[n,i]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{i(c())}),[]);const o=(0,r.useCallback)((()=>{d(!0),i(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||i(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new o.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(67294),a=n(10412),i=n(902),o=n(50012),l=n(86668);const s=r.createContext(void 0),u="theme",c=(0,o.WA)(u),d="light",p="dark",f=e=>e===p?p:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[i,o]=(0,r.useState)((e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e))(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const s=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&(e=>{c.set(f(e))})(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p:d:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(i))}),[i]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&s(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,s]);const m=(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||m.current?m.current=window.matchMedia("print").matches:s(null)};return e.addListener(r),()=>e.removeListener(r)}),[s,t,n]),(0,r.useMemo)((()=>({colorMode:i,setColorMode:s,get isDarkTheme(){return i===p},setLightTheme(){s(d)},setDarkTheme(){s(p)}})),[i,s])}function h(e){let{children:t}=e;const n=m();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>b});var r=n(67294),a=n(80143),i=n(29935),o=n(86668),l=n(52802),s=n(902),u=n(50012);const c=e=>"docs-preferred-version-"+e,d=(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},p=(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),f=(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,o.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[i,l]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[i,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return r.createElement(m.Provider,{value:n},t)}function b(e){let{children:t}=e;return l.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(m);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=i.m);const n=(0,a.zh)(e),[o,l]=v(),{preferredVersionName:s}=o[e];return{preferredVersion:null!=(t=n.versions.find((e=>e.name===s)))?t:null,savePreferredVersionName:(0,r.useCallback)((t=>{l.savePreferredVersion(e,t)}),[l,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),a=n(902);const i=Symbol("EmptyContext"),o=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(o.Provider,{value:i},t)}function s(){const e=(0,r.useContext)(o);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},72961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(67294),a=n(13102),i=n(87524),o=n(76775),l=(n(61688),n(902));function s(e){!function(e){const t=(0,o.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 u=n(86668);const c=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,i.i)(),n=!e&&"mobile"===t,[o,l]=(0,r.useState)(!1);s((()=>{if(o)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:o})),[e,n,c,o])}function p(e){let{children:t}=e;const n=d();return r.createElement(c.Provider,{value:n},t)}function f(){const e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>o});var r=n(67294),a=n(902);const i=r.createContext(null);function o(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(i.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>i});var r=n(67294);const a="navigation-with-keyboard";function i(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(67294),a=n(10412);const i="desktop",o="mobile",l="ssr";function s(){return a.Z.canUseDOM?window.innerWidth>996?i:o:l}function u(){const[e,t]=(0,r.useState)((()=>s()));return(0,r.useEffect)((()=>{function e(){t(s())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},35281:(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:{}}},91442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},52802:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>m,cE:()=>d,hI:()=>w,lO:()=>b,vY:()=>y,oz:()=>v,s1:()=>g});var r=n(67294),a=n(76775),i=n(18790),o=n(80143),l=n(60373),s=n(1116);function u(e){return Array.from(new Set(e))}var c=n(48596);const d=!!o._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,c.Mg)(e,t);function m(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||((e,t)=>e.some((e=>m(e,t))))(e.items,t))}function h(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const i of t)if("category"===i.type&&((0,c.Mg)(i.href,n)||e(i.items))||"link"===i.type&&(0,c.Mg)(i.href,n)){return r&&"category"!==i.type||a.unshift(i),!0}return!1}(t),a}function g(){var e;const t=(0,s.V)(),{pathname:n}=(0,a.TH)();return!1!==(null==(e=(0,o.gA)())?void 0:e.pluginData.breadcrumbs)&&t?h({sidebarItems:t.items,pathname:n}):null}function b(e){const{activeVersion:t}=(0,o.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,o.yW)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function v(e,t){const n=b(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 y(e,t){const n=b(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- '+u(t.map((e=>e.id))).join("\n- "))}return r}),[e,n])}function w(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),o=t.routes,l=o.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,i.H)(o),sidebarName:s,sidebarItems:u}}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(67294),a=n(86010),i=n(35742),o=n(30226);function l(){const e=r.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),u=n(52263);function c(e){let{title:t,description:n,keywords:a,image:o,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),{withBaseUrl:d}=(0,s.C)(),p=o?d(o,{absolute:!0}):void 0;return r.createElement(i.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),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 o=r.useContext(d),l=(0,a.Z)(o,t);return r.createElement(d.Provider,{value:l},r.createElement(i.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),i="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"");const o="plugin-id-"+n.plugin.id;return r.createElement(p,{className:(0,a.Z)(i,o)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>o,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>i});var r=n(67294);const a=n(10412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function i(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function o(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){var n,r,a,i;super(),this.name="ReactContextError",this.message="Hook "+(null!=(n=null==(r=this.stack)||null==(a=r.split("\n")[1])||null==(i=a.match(/at (?:\w+\.)?(?\w+)/))?void 0:i.groups.name)?n:"")+" is called outside the <"+e+">. "+(null!=t?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 u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>o,Ns:()=>l});var r=n(67294),a=n(723),i=n(52263);function o(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){const{baseUrl:e}=(0,i.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 a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>{var t;return null!=(t=e.routes)?t:[]})))}(n)}({routes:a.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d});var r=n(67294),a=n(10412),i=n(72389),o=n(902);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 u(){const e=(0,r.useContext)(l);if(null==e)throw new o.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),i=(0,o.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();i(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[i,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,i.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 a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(52263);const r="default";function a(e,t){return"docs-"+e+"-"+t}},50012:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(67294),n(61688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const i=document.createEvent("StorageEvent");i.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(i)}function i(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,o||(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),o=!0),null}var t}let o=!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=i(null==t?void 0: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),a({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),a({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),()=>{}}}}}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(52263),a=n(76775),i=n(18780);function o(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:o,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,a.TH)(),u=(0,i.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===o?e:e.replace("/"+l+"/","/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return""+(r?t:"")+function(e){return e===o?""+c:""+c+e+"/"}(n)+d}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>o});var r=n(67294),a=n(76775),i=n(902);function o(e){const t=(0,a.TH)(),n=(0,i.D9)(t),o=(0,i.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&o({location:t,previousLocation:n})}),[o,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(52263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(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[a]=e.split(/[#?]/),i="/"===a||a===r?a:(o=a,n?function(e){return e.endsWith("/")?e:e+"/"}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));var o;return e.replace(a,i)}},54143:(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]}},18780: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 a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var i=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},80311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(86010);const i="loadingRing_RJI3";function o(e){let{className:t}=e;return r.createElement("div",{className:(0,a.Z)(i,t)},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null),r.createElement("div",null))}},90022:(e,t,n)=>{"use strict";n.d(t,{w:()=>l});var r=n(31336),a=n.n(r),i=n(61029);const o=new Map;function l(e,t){const n=""+e+t;let r=o.get(n);return r||(r=async function(e,t){{const n=""+e+i.J.replace("{dir}",t?"-"+t.replace(/\//g,"-"):"");if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),o=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),l=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:o,zhDictionary:Array.from(l)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),o.set(n,r)),r}},98202:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var r=n(31336),a=n.n(r);var i=n(61029);function o(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,i.dK);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const i=r[0];if(/\p{Unified_Ideograph}/u.test(i)){const n=function(e,t){const n=[];return function e(r,a){let i=0,o=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:a.missed,term:a.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),o=!0}else for(let t=l.length-1;t>i;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){i=t;const l={missed:a.missed,term:a.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),o=!0;break}}o||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(i,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:i});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const o of i.dK)if("en"===o)i._k||r.unshift(a().stopWordFilter);else{const e=a()[o];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const a of l)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)s.push(a.slice(0,e).concat(a.slice(e+1)));return o(n).concat(o(s))}(s,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:i,type:o}of e)if(c.push(...i.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:o,page:0!==o&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},21690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},91073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},82539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(21690);function a(e,t,n){const i=[];for(const o of t){const n=e.toLowerCase().indexOf(o);if(n>=0){n>0&&i.push(a(e.substr(0,n),t)),i.push(""+(0,r.X)(e.substr(n,o.length))+"");const l=n+o.length;l"+(0,r.X)(e)+"":(0,r.X)(e):i.join("")}},10726:(e,t,n)=>{"use strict";n.d(t,{o:()=>s});var r=n(21690),a=n(82539);const i=/\w+|\p{Unified_Ideograph}/u;function o(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(i);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var l=n(61029);function s(e,t,n,i){void 0===i&&(i=l.Hk);const{chunkIndex:s,chunks:u}=function(e,t,n){const i=[];let l=0,s=0,u=-1;for(;ls){const t=o(e.substring(s,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}-1===u&&(u=i.length),s=c+d,i.push({html:(0,a.C)(e.substring(c,s),n,!0),textLength:d})}}if(s({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}return{chunkIndex:u,chunks:i}}(e,t,n),c=u.slice(0,s),d=u[s],p=[d.html],f=u.slice(s+1);let m=d.textLength,h=0,g=0,b=!1,v=!1;for(;m0){const e=c.pop();m+e.textLength<=i?(p.unshift(e.html),h+=e.textLength,m+=e.textLength):(b=!0,c.length=0)}else{if(!(f.length>0))break;{const e=f.shift();m+e.textLength<=i?(p.push(e.html),g+=e.textLength,m+=e.textLength):(v=!0,f.length=0)}}return(b||c.length>0)&&p.unshift("\u2026"),(v||f.length>0)&&p.push("\u2026"),p.join("")}},61029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>i,gQ:()=>f,H6:()=>u,hG:()=>g,l9:()=>m,dK:()=>r,_k:()=>a,pu:()=>p,AY:()=>c,t_:()=>d,Kc:()=>h,J:()=>o,Hk:()=>s,qo:()=>l,pQ:()=>b});n(31336);const r=["en"],a=!1,i=null,o="search-index{dir}.json?_=22198f43",l=8,s=50,u=!1,c=!0,d=!0,p="left",f=void 0,m=!0,h=null,g=!1,b=!1},86010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>L,Ep:()=>p});var r=n(87462);function a(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=o[p];"."===f?i(o,p):".."===f?(i(o,p),d++):d&&(i(o,p),d--)}if(!u)for(;d--;d)o.unshift("..");!u||""===o[0]||o[0]&&a(o[0])||o.unshift("");var m=o.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(2177);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(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,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.Z)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(i.key=n),a?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=o(i.pathname,a.pathname)):i.pathname=a.pathname:i.pathname||(i.pathname="/"),i}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,a):a(!0):a(!1!==i)}else a(!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;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(59864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?o:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=o;var u=Object.defineProperty,c=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 a=f(n);a&&a!==m&&e(t,a,r)}var o=c(n);d&&(o=o.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,i,o,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 u=[n,r,a,i,o,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},31336:(e,t,n)=>{var r,a;!function(){var i,o,l,s,u,c,d,p,f,m,h,g,b,v,y,w,k,E,S,x,_,C,T,L,P,A,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(i=this,function(e){i.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var s=R.utils.clone(t)||{};s.position=[o,l],s.index=a.length,a.push(new R.Token(n.slice(o,i),s))}o=i+1}}return a},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ie&&(n=a),i!=e);)r=n-t,a=t+Math.floor(r/2),i=this.elements[2*a];return i==e||i>e?2*a:il?u+=2:o==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var i,o=a.str.charAt(0);o in a.node.edges?i=a.node.edges[o]:(i=new R.TokenSet,a.node.edges[o]=i),1==a.str.length&&(i.final=!0),r.push({node:i,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new R.TokenSet;a.node.edges["*"]=l}if(0==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new R.TokenSet;a.node.edges["*"]=s}1==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new R.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,a=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),i=Object.create(null),o=Object.create(null),l=0;l1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(a.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=a)}()},13956:(e,t,n)=>{"use strict";n.r(t)},59789:(e,t,n)=>{"use strict";n.r(t)},32497:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,a;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:'
    '};function a(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}function o(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,a}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=a(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),u=i.querySelector(r.barSelector),c=r.speed,d=r.easing;return i.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,o(e,c,d)),1===e?(s(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){s(i,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),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)*a(Math.random()*t,.1,.95)),t=a(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");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,o=t.querySelector(r.barSelector),l=e?"-100":i(n.status||0),u=document.querySelector(r.parent);return s(o,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.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,a=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+i)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(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===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}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(a){return!1}}()?Object.assign:function(e,i){for(var o,l,s=a(e),u=1;u{"use strict";n.d(t,{Z:()=>i});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=i(k,S,e,b))||_.index>=e.length)break;var T=_.index,L=_.index+_[0].length,P=S;for(P+=E.value.length;T>=P;)P+=(E=E.next).value.length;if(S=P-=E.value.length,E.value instanceof a)continue;for(var A=E;A!==t.tail&&(Pd.reach&&(d.reach=I);var F=E.prev;if(O&&(F=s(t,F,O),S+=O.length),u(t,F,C),E=s(t,F,new a(p,g?r.tokenize(R,g):R,y,R)),N&&s(t,E,N),C>1){var D={cause:p+","+m,reach:I};o(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,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a"+i.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\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://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]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.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:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.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 a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.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|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.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},a.languages.c.string],char:a.languages.c.char,comment:a.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:a.languages.c}}}}),a.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 a.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(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//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+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//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"])}(a),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"))}(a),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},a={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:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.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}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.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:a.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:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.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:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.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:a.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"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.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")),a.languages.js=a.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}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\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:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?: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}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \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("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),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__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\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(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.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",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.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:a.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+/},a.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;n0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\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,a=r.inside["interpolation-punctuation"],i=r.pattern.source;function o(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 a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var i=e.tokenize(t,n);if(3===i.length){var o=[1,1];o.push.apply(o,s(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,o)}return new e.Token("interpolation",i,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),o=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(o++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return o=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[o],i="string"==typeof r?r:r.content,l=i.indexOf(a);if(-1!==l){++o;var s=i.substring(0,l),d=u(c[a]),f=i.substring(l+a.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"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:markdown|md)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("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,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,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}(a),function(e){function t(e,t){return RegExp(e.replace(//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*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\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*)#?/.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*\.{3}(?:[^{}]|)*\})/.source;function i(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=i(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=i(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\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:i(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:i(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(o).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===o(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:o(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:i=!0),(i||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=o(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=o(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),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],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,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})}(a),a.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},a.languages.go=a.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/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.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,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof i&&!i(e))return e;for(var a,l=o.length;-1!==n.code.indexOf(a=t(r,l));)++l;return o[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(l){for(var s=0;s=i.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=i[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;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,o([h])),v.push(g),b&&v.push.apply(v,o([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&o(u.content)}return l}(n.tokens)}}}})}(a),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}(a),a.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"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.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:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.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:/[:;(){}]/},a.languages.objectivec=a.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 a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.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/},a.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:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.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/}),a.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 a.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}})}(a),a.languages.scss=a.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]+\}/}}}),a.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}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.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}}),a.languages.scss.atrule.inside.rest=a.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:/[{}()\[\];:.]/}}(a),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}(a),a.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 i=a},29901: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:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},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"},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"},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"},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"},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"},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 WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). 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 highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),a=n(39642),i=new Set;function o(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(o.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),i.add(e)}))}o.silent=!1,e.exports=o},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=6726},16500:(e,t,n)=>{var r={"./":2885};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=16500},39642: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 "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var o in a(t,i),l[t]=!0,n[t])l[o]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,i.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(i,o,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var i=r[a];t[a]="string"==typeof i?{title:i}:i}}return t}(i),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var i=e[a];t(i&&i.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);o=o.map(u),l=(l||[]).map(u);var c=n(o),d=n(l);o.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(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 c))for(var v in f(b))if(v in c){p[b]=!0;break}for(var y in m=p)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var i=a?a.series:void 0,o=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=o(c.map((function(e){var t=u(e);return delete s[e],t})));i?a=i(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return o(d)}(f,c,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==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:i,resetWarningCache:a};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),a=n(27418),i=n(63840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n