diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..a1fe7dee --- /dev/null +++ b/404.html @@ -0,0 +1,16 @@ + + + + + +Page Not Found | RN Notificated + + + + +
+
Skip to main content

Page Not Found

We could not find what you were looking for.

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

+ + + + \ No newline at end of file diff --git a/assets/css/styles.b15bcc64.css b/assets/css/styles.b15bcc64.css new file mode 100644 index 00000000..a874c29e --- /dev/null +++ b/assets/css/styles.b15bcc64.css @@ -0,0 +1 @@ +@import url(https://fonts.googleapis.com/css2?family=Michroma&display=swap);.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#3578e5;--ifm-color-primary-dark:#1d68e1;--ifm-color-primary-darker:#1b62d4;--ifm-color-primary-darkest:#1751af;--ifm-color-primary-light:#4e89e8;--ifm-color-primary-lighter:#5a91ea;--ifm-color-primary-lightest:#80aaef;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1);--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area.breadcrumbs__link[href]:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.docsWrapper_BCFX,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:hsla(0,0%,100%,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.heroLogo_U6bI,.underline_z_Wg{background-position:50%;background-repeat:no-repeat;background-size:contain}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:hsla(0,0%,100%,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:hsla(0,0%,100%,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}html[data-theme=light]{--ifm-background-color:#e3e1ea;--ifm-background-surface-color:#fff}.docusaurus-highlight-code-line{background-color:rgba(0,0,0,.1);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:rgba(0,0,0,.3)}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.collapseSidebarButton_PEFL,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:hsla(0,0%,100%,.05);--docusaurus-collapse-button-bg-hover:hsla(0,0%,100%,.1)}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.heroContainer_i2aB{display:flex;flex:1}.heroContent_mKPX{height:100%;padding-bottom:40px;padding-left:80px;padding-right:40px;width:55%}.heroText_ryRM{display:flex;flex-direction:column;justify-content:flex-end;margin-top:100px}.heroTitle_qg2I{font-family:Michroma,sans-serif;font-size:64px}.heroDescription_UJGW{font-family:Michroma,sans-serif;font-size:33px;font-weight:500;margin-top:25px}.underline_z_Wg{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NDUuNjMgMTYuMDciPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48ZyBkYXRhLW5hbWU9IldhcnN0d2EgMSI+PHBhdGggc3R5bGU9ImZpbGw6I2RlZGVlMCIgZD0iTTAgOC4wNGg1NDUuNjMiLz48cGF0aCBkPSJNMTE5LjQ3IDE1LjNjLTIxLjM0LTEuNjgtNDMuNy45NC02NS4zOS0xLjYxLTctLjgyLTE4LjU3LS41OS0yNi44MiAxLjM0LTMuOTQuOTItMjIuMzktMS0yNi4xLTIuODctMy41Ni0xLjc4IDEuODQtMi45IDUuNjYtNGwuMTguMDVoLS4yNmMxMC00LjU1IDIyLjI2LTcuNTIgNDMtNi41OSAxMS40Ny41MSAyMy0xLjM1IDM1LjIxLS41OSA4Ljg5LjU1IDE4LjMzLjM0IDI2LjgzIDEuNTNhMTQuMTIgMTQuMTIgMCAwIDAgMi4xNC4zYzEwLjQzLTEuNzkgMjEuOC0uNjMgMzIuNjktLjg5IDQuMDctLjExIDguMTktLjQ2IDEyLjE1LS4zNGE5NS4wOCA5NS4wOCAwIDAgMCAxNi44LS45YzcuNjgtMSAxNi4yMi0xLjIxIDIyLjM3IDEuNjkgMi4wOSAxIDkuODcgMS4yOCAxNS4yNS41MyA3LjUxLTEuMDYgMTQuNzItMS41MiAyMS44Ni4xOWE4LjQ3IDguNDcgMCAwIDAgMi4yOS4xOGMxNS40Mi0xLjk0IDMxLjc3IDEuMjggNDYtLjIxIDE2LjYtMS43NSAzMC40Ni0uMzggNDUuODUuNTkgOSAuNTcgMTguODYtLjc5IDI4LjY3LS43NCAzLjU5IDAgNy40My0uNTEgMTEuMzctLjIxYTI1LjA3IDI1LjA3IDAgMCAwIDQuMjIuMTYgMTIzLjI4IDEyMy4yOCAwIDAgMSAyOS40LTEuMTRoLjIxbC0uMjQtLjA2YzgtMS44NyAxNS44OS0xLjA5IDIzLjgxIDBoLS4xM2MuNzcuNC0uMzEgMS4xOSAyLjg3IDEuMDggOS44LS4zNCAxOS4yNi41OSAyOC45NC42OGEyNC40NCAyNC40NCAwIDAgMCA0LjctLjMgNjQuMyA2NC4zIDAgMCAxIDI2LS4yOCA2LjQ1IDYuNDUgMCAwIDAgMS4xMi4xMmM3LjUyLTIuNSAxOC41MS0uMzUgMjcuMjEtMS43NiA5LTEuNDYgMjkuMjcgMi41IDI4LjI5IDUuMzYtLjE4LjU1LTIuNTggMS00IDEuNTVoLjEyYy0xMS4yNyAzLTI0IDQuNzktMzkuNDUgNS44OC0xMy4zNy45NS0yNS40MS0xLjA4LTM2LjgyLS4yMS0xMC40Mi44LTIxLjExIDEuMTEtMzAuOTIgMS0xMi43My0uMDgtMjUuMDcgMS43NS0zOC40NS4xMy03LjI1LS44OC0xNi44OS0uMTQtMjUuNDUtLjA5LTE3LjEyLjA4LTM0LjA3IDEuMzYtNTEuNDUtLjEyLTYuOS0uNTktMTUuNi0uNzgtMjIuNjguN2guMTJjLTEwLjE0LTEuMjItMTkuNDIuOTQtMjkuNTkuNTctMTctLjYyLTM0LjU2LjE2LTUxLjI1LTEuNmEzMy42MSAzMy42MSAwIDAgMC03LjYuMjIgNjAuMzUgNjAuMzUgMCAwIDEtMTcuNyAwIDg4LjY1IDg4LjY1IDAgMCAwLTIxLjE3LS4xOWMtNS40Mi42NS0xMC43OCAxLjI1LTE2LjEyLS4wOWExMi4yOCAxMi4yOCAwIDAgMC0zLjQtLjNjLTkuMjcgMi40Mi0yMC41Ny4yNy0zMC40NiAxLjE2WiIgc3R5bGU9ImZpbGw6IzdkN2RmZiIvPjwvZz48L2c+PC9zdmc+);height:25px;margin-bottom:40px;width:75%}.heroButtons_r52D{align-items:flex-start;display:flex;flex-direction:column;height:50%;justify-content:flex-start;padding-top:70px}.heroButtonBlack_rhYy,.heroButtonWhite_MMHY{font-family:Michroma,sans-serif;font-size:27px;height:80px;margin:20px 0;text-decoration:none;width:370px;display:flex;cursor:pointer}.heroButtonWhite_MMHY{align-items:center;border:2px solid #fff;border-radius:60px;color:#fff;justify-content:center}.heroButtonWhite_MMHY:hover{border:2px solid #fff;color:#fff}.heroButtonBlack_rhYy{align-items:center;border:2px solid #000;border-radius:60px;color:#000;justify-content:center}.heroButtonBlack_rhYy:hover{border:2px solid #000;color:#000}.githubIcon_LkL1{height:45px;margin-right:15px;width:45px}.heroLogo_U6bI{background-image:url(/react-native-notificated/assets/images/logo-6fd648117f8c3f17cee970d375d86c98.svg);height:920px;margin-top:90px;position:relative;width:920px}.blackLightningLeft_glxm,.blackLineLeft_Qg9i,.blueLineLeft_V2GT,.blueLineRight_u6yL,.whiteLightningLeft_HjQT,.whiteLineLeft_HXEj{background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute}.whiteLightningLeft_HjQT{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMTAuNjcgOTYuMTciPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48cGF0aCBkPSJNMS42OSAxLjA3QzM4LjEzIDI3LjY1IDg5IDY0LjgzIDEyNC42MSA5MS40NWwtMS42Ljc0YzAtMy41OC4xMS03LjE1LjIyLTEwLjcyLjIyLTYuMzUuNTctMTUuMTcgMS0yMS40MWE0NS4zNiA0NS4zNiAwIDAgMSAxLjM5LTEwLjY1IDEuMTggMS4xOCAwIDAgMSAxLjI3LS44NGM0LjMyLjQxIDcuNTkgMi44OCAxMS4xNSA0LjczbDEwLjMzIDUuN2MxOS4yMSAxMC43NCA0Mi45NSAyNC4wNyA2MS43OCAzNS4yNUwyMDkgOTUuODkgMTExLjMxIDRsMS42OS0uNTctOCA1MS41MWExIDEgMCAwIDEtMS40Ni43M1E5NyA1Mi40OSA5MC42MyA0OS4yNWMtMjQuMTQtMTEuODItNjUtMzUtODguOTQtNDguMThaTTAgMGMzNC4yMSAxNi45MiA3MS4zNiAzNS4xNSAxMDQuNDMgNTMuOWwtMS40NS43MyA4LTUxLjUxYTEgMSAwIDAgMSAxLjY3LS41N2w5Ny42NyA5MS44OWExIDEgMCAwIDEtMS4xMyAxLjYyYy0yMy4zOS0xMS45Mi01MC4yMS0yNi4zOC03My4yOS0zOS0zLjQxLTItNy4xNS0zLjM5LTkuODMtNi43MmwxLjQ4LS44MWMxIDcuMTctLjMxIDE0LjI3LS42MiAyMS40My0uNTIgNi4yNi0xLjIxIDE1LjE5LTEuOTUgMjEuMzVhMSAxIDAgMCAxLTEuNi43NEM4Ny40MiA2Ni40NCAzNi4yMiAyNy40MSAwIDBaIiBzdHlsZT0iZmlsbDojZmZmIiBkYXRhLW5hbWU9IldhcnN0d2EgMSIvPjwvZz48L3N2Zz4=)}.blackLightningLeft_glxm,.whiteLightningLeft_HjQT{height:280px;left:-280px;top:290px;width:280px}.blackLightningLeft_glxm{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMTAuNjcgOTYuMTciPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48cGF0aCBkPSJNMS42OSAxLjA3QzM4LjEzIDI3LjY1IDg5IDY0LjgzIDEyNC42MSA5MS40NWwtMS42Ljc0YzAtMy41OC4xMS03LjE1LjIyLTEwLjcyLjIyLTYuMzUuNTctMTUuMTcgMS0yMS40MWE0NS4zNiA0NS4zNiAwIDAgMSAxLjM5LTEwLjY1IDEuMTggMS4xOCAwIDAgMSAxLjI3LS44NGM0LjMyLjQxIDcuNTkgMi44OCAxMS4xNSA0LjczbDEwLjMzIDUuN2MxOS4yMSAxMC43NCA0Mi45NSAyNC4wNyA2MS43OCAzNS4yNUwyMDkgOTUuOSAxMTEuMzEgNGwxLjY5LS41Ny04IDUxLjUxYTEgMSAwIDAgMS0xLjQ2LjczUTk3IDUyLjQ5IDkwLjYzIDQ5LjI1Yy0yNC4xNC0xMS44Mi02NS0zNS04OC45NC00OC4xOFpNMCAwYzM0LjIxIDE2LjkyIDcxLjM2IDM1LjE1IDEwNC40MyA1My45bC0xLjQ1LjczIDgtNTEuNTFhMSAxIDAgMCAxIDEuNjctLjU3bDk3LjY3IDkxLjg5YTEgMSAwIDAgMS0xLjEzIDEuNjJjLTIzLjM5LTExLjkyLTUwLjIxLTI2LjM4LTczLjI5LTM5LTMuNDEtMi03LjE1LTMuMzktOS44My02LjcybDEuNDgtLjgxYzEgNy4xOC0uMzEgMTQuMjctLjYyIDIxLjQzLS41MiA2LjI2LTEuMjEgMTUuMTktMS45NSAyMS4zNWExIDEgMCAwIDEtMS42Ljc0Qzg3LjQyIDY2LjQ0IDM2LjIyIDI3LjQxIDAgMFoiIHN0eWxlPSJmaWxsOiMxYzFjMWMiIGRhdGEtbmFtZT0iV2Fyc3R3YSAxIi8+PC9nPjwvc3ZnPg==)}.whiteLineLeft_HXEj{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDguMzcgMzQuNDUiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmfTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJXYXJzdHdhXzIiIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48ZyBpZD0iV2Fyc3R3YV8xLTIiIGRhdGEtbmFtZT0iV2Fyc3R3YSAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNjQgMzAuODEuMi45OE0xNDYuOSAzNC40NSAwIDEuOTYuNCAwbDE0Ny45NyAyNy4xNi0xLjQ3IDcuMjl6Ii8+PC9nPjwvZz48L3N2Zz4=)}.blackLineLeft_Qg9i,.whiteLineLeft_HXEj{bottom:280px;height:200px;left:-165px;width:200px}.blackLineLeft_Qg9i{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDguMzcgMzQuNDUiPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48ZyBkYXRhLW5hbWU9IldhcnN0d2EgMSI+PHBhdGggc3R5bGU9ImZpbGw6I2ZmZiIgZD0iTTE0Ny42NCAzMC44MS4yLjk4Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzFjMWMxYyIgZD0iTTE0Ni45IDM0LjQ1IDAgMS45Ni40IDBsMTQ3Ljk3IDI3LjE2LTEuNDcgNy4yOXoiLz48L2c+PC9nPjwvc3ZnPg==)}.blueLineLeft_V2GT{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzODMuMjUgNDMuMjMiPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48cGF0aCBzdHlsZT0iZmlsbDojN2Q3ZGZmIiBkPSJNMzgzLjI1IDE0LjEuMTggNDMuMjMgMCA0MS4yNCAzODEuOTYgMGwxLjI5IDE0LjF6IiBkYXRhLW5hbWU9IldhcnN0d2EgMSIvPjwvZz48L3N2Zz4=);bottom:220px;left:-570px;width:650px}.blueLineLeft_V2GT,.blueLineRight_u6yL{height:100px}.blueLineRight_u6yL{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNDUuNTUgNzkuMzgiPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48cGF0aCBzdHlsZT0iZmlsbDojN2Q3ZGZmIiBkPSJNMjQ1LjU1IDAgMy42OCA3OS4zOCAwIDY3LjE0IDI0NS41NSAweiIgZGF0YS1uYW1lPSJXYXJzdHdhIDEiLz48L2c+PC9zdmc+);bottom:300px;right:5px;width:300px}.blackLightningRight_hY_v,.blackLineRight_zsrC,.whiteLightningRight__xfS,.whiteLineRight_SZnl{background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;width:250px}.whiteLineRight_SZnl{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDcuNTggMzIuODQiPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48cGF0aCBkPSJNMjA3LjU4IDMyLjg0IDAgMTYuMjkgMS45NCAwYzAgLjE0IDIwNiAzMi40NyAyMDUuNjQgMzIuODRaIiBzdHlsZT0iZmlsbDojZmZmIiBkYXRhLW5hbWU9IldhcnN0d2EgMSIvPjwvZz48L3N2Zz4=)}.blackLineRight_zsrC,.whiteLineRight_SZnl{bottom:220px;height:100px;right:35px}.blackLineRight_zsrC{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDcuNTggMzIuODQiPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48cGF0aCBkPSJNMjA3LjU4IDMyLjg0IDAgMTYuMjkgMS45NCAwYzAgLjE0IDIwNiAzMi40NyAyMDUuNjQgMzIuODRaIiBzdHlsZT0iZmlsbDojMWMxYzFjIiBkYXRhLW5hbWU9IldhcnN0d2EgMSIvPjwvZz48L3N2Zz4=)}.whiteLightningRight__xfS{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTEuMTYgMTc5LjkiPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48cGF0aCBkPSJNMTg5Ljg4IDE3OC4zNmMtMzIuMy00My43OC03Ny4zOC0xMDUtMTA4LjgxLTE0OC40MmwxLjc0LS4yM0M3OS42NCAzOS41MiA3NS43MyA1MC4zOSA3Mi4xIDYwYTQ1LjQ5IDQ1LjQ5IDAgMCAxLTQuNTEgOS43NCAxLjE4IDEuMTggMCAwIDEtMS40Ni40M2MtNC0xLjY5LTYuMzktNS05LjIzLTcuODVDMzguNzMgNDMuMzMgMTcuODUgMjEuMi4yOCAxLjY5TDEuODcuNTFsNjUuNzggMTE2Ljg2aC0xLjc3bDIzLTQ2Ljc2YTEgMSAwIDAgMSAxLjYzLS4yNGMzNC4wNSAzNC42NiA2Ni42MSA3MS42NiA5OS4zMyAxMDcuOTRabTEuMjggMS41NGMtMzAuNzgtMzEuNzgtNzMuMjgtNzUuNDMtMTAyLjA3LTEwOC4xMmwxLjYzLS4yNC0yMyA0Ni43NmExIDEgMCAwIDEtMS43NyAwTC4xMyAxLjQ5QTEgMSAwIDAgMSAxLjcyLjMxQzcuMzkgNS44MiAxMyAxMS40MyAxOC41NiAxNyAzMC42NCAyOS4xNiA0OC4xOCA0Ny4wNyA2MCA1OS4zOGMyLjY2IDIuOTIgNS44MSA1LjM3IDcuMzcgOS4zNWwtMS42NS4zM2MxLjIyLTcuMTQgNC41NS0xMy41MiA3LTIwLjI2Qzc1LjA3IDQzIDc4LjQgMzQuNjYgODAuOTQgMjlhMSAxIDAgMCAxIDEuNzUtLjIzYzMxLjc3IDQzLjUzIDc2LjY1IDEwNi42NiAxMDguNDcgMTUxLjEzWiIgc3R5bGU9ImZpbGw6I2ZmZiIgZGF0YS1uYW1lPSJXYXJzdHdhIDEiLz48L2c+PC9zdmc+)}.blackLightningRight_hY_v,.whiteLightningRight__xfS{bottom:10px;height:250px;right:45px}.blackLightningRight_hY_v{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTEuMTYgMTc5LjkiPjxnIGRhdGEtbmFtZT0iV2Fyc3R3YSAyIj48cGF0aCBkPSJNMTg5Ljg4IDE3OC4zNmMtMzIuMy00My43OC03Ny4zOC0xMDUtMTA4LjgxLTE0OC40MmwxLjc0LS4yM0M3OS42NCAzOS41MiA3NS43MyA1MC4zOSA3Mi4xIDYwYTQ1Ljc5IDQ1Ljc5IDAgMCAxLTQuNTEgOS43NSAxLjE5IDEuMTkgMCAwIDEtMS40Ni40MmMtNC0xLjY5LTYuMzktNS05LjIzLTcuODVDMzguNzMgNDMuMzMgMTcuODUgMjEuMi4yOCAxLjY5TDEuODcuNTFsNjUuNzggMTE2Ljg2aC0xLjc3bDIzLTQ2Ljc2YTEgMSAwIDAgMSAxLjYzLS4yNGMzNC4wNSAzNC42NiA2Ni42MSA3MS42NSA5OS4zMyAxMDcuOTRabTEuMjggMS41NGMtMzAuNzgtMzEuNzgtNzMuMjgtNzUuNDMtMTAyLjA3LTEwOC4xMmwxLjYzLS4yNC0yMyA0Ni43NmExIDEgMCAwIDEtMS43NyAwTC4xMyAxLjQ5QTEgMSAwIDAgMSAxLjcyLjMxQzcuMzkgNS44MiAxMyAxMS40MyAxOC41NiAxNyAzMC42NCAyOS4xNiA0OC4xOCA0Ny4wNyA2MCA1OS4zOGMyLjY2IDIuOTIgNS44MSA1LjM3IDcuMzcgOS4zNWwtMS42NS4zM2MxLjIyLTcuMTQgNC41NS0xMy41MyA3LTIwLjI2Qzc1LjA3IDQzIDc4LjQgMzQuNjYgODAuOTQgMjlhMSAxIDAgMCAxIDEuNzUtLjIzYzMxLjc3IDQzLjUzIDc2LjY1IDEwNi42NiAxMDguNDcgMTUxLjEzWiIgc3R5bGU9ImZpbGw6IzFjMWMxYyIgZGF0YS1uYW1lPSJXYXJzdHdhIDEiLz48L2c+PC9zdmc+)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.buttons_AeoN{align-items:center;display:flex;justify-content:center}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity .2s ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:.15s;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.breadcrumbHomeIcon_OVgt{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg);position:sticky}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;top:0;transition:background-color var(--ifm-transition-fast) ease}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media screen and (max-width:1900px){.heroBanner_qdFl{padding:2rem}.heroTitle_qg2I{font-size:50px}}@media screen and (max-width:1600px){.heroTitle_qg2I{font-size:40px}.blackLightningLeft_glxm,.whiteLightningLeft_HjQT{bottom:-90px;height:480px;left:-130px;top:unset;width:480px}.blackLineLeft_Qg9i,.blackLineRight_zsrC,.blueLineLeft_V2GT,.blueLineRight_u6yL,.whiteLineLeft_HXEj,.whiteLineRight_SZnl{display:none}.blackLightningRight_hY_v,.whiteLightningRight__xfS{bottom:-100px}.heroLogo_U6bI{margin-top:-50px}}@media screen and (max-width:1400px){.blackLightningLeft_glxm,.whiteLightningLeft_HjQT{bottom:-30px;height:380px;left:-80px;width:380px}}@media screen and (max-width:1300px){.heroContainer_i2aB{flex-direction:column-reverse}.heroContent_mKPX{justify-content:center;margin:40px 0;padding:40px 40px 0;text-align:center;width:100%}.heroText_ryRM{align-items:center;margin-top:0}.heroButtons_r52D{flex-direction:row;justify-content:center;padding-top:30px}.heroButtonBlack_rhYy,.heroButtonWhite_MMHY{margin:0 20px}.blackLightningLeft_glxm,.whiteLightningLeft_HjQT{bottom:unset;height:200px;left:190px;top:160px;width:200px}.blackLineLeft_Qg9i,.whiteLineLeft_HXEj{bottom:190px;display:block;height:150px;left:260px;width:150px}.blueLineLeft_V2GT{bottom:130px;display:block;height:100px;left:110px;width:350px}.blueLineRight_u6yL{bottom:170px;display:block;height:100px;left:800px;width:200px}.blackLineRight_zsrC,.whiteLineRight_SZnl{bottom:105px;display:block;height:100px;left:820px;width:200px}.blackLightningRight_hY_v,.whiteLightningRight__xfS{bottom:-50px;height:200px;left:800px;width:200px}.heroLogo_U6bI{background-position-x:400px;height:620px;margin-top:0;width:100%}}@media screen and (max-width:1100px){.heroContent_mKPX{margin:0 0 40px;padding:0 40px}.blackLightningLeft_glxm,.blackLightningRight_hY_v,.blackLineLeft_Qg9i,.blackLineRight_zsrC,.blueLineLeft_V2GT,.blueLineRight_u6yL,.whiteLightningLeft_HjQT,.whiteLightningRight__xfS,.whiteLineLeft_HXEj,.whiteLineRight_SZnl{display:none}.heroLogo_U6bI{background-position:50%}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:900px){.heroLogo_U6bI{height:80vw}}@media screen and (max-width:650px){.heroButtons_r52D{align-items:center;flex-direction:column;padding-top:30px}.heroButtonBlack_rhYy,.heroButtonWhite_MMHY{margin:20px 0}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:445px){.heroTitle_qg2I{font-size:30px}.heroButtonBlack_rhYy,.heroButtonWhite_MMHY{width:95%}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/images/accent-1a227aec8f5965ca3a81c8313fecdac1.png b/assets/images/accent-1a227aec8f5965ca3a81c8313fecdac1.png new file mode 100644 index 00000000..93b17bcb Binary files /dev/null and b/assets/images/accent-1a227aec8f5965ca3a81c8313fecdac1.png differ diff --git a/assets/images/border-d40e328e8fc7581aa6c0499b55bd68e9.png b/assets/images/border-d40e328e8fc7581aa6c0499b55bd68e9.png new file mode 100644 index 00000000..9e67e7f2 Binary files /dev/null and b/assets/images/border-d40e328e8fc7581aa6c0499b55bd68e9.png differ diff --git a/assets/images/custom_info-c995f34a9075f2f5857f847a2e04658a.png b/assets/images/custom_info-c995f34a9075f2f5857f847a2e04658a.png new file mode 100644 index 00000000..dd99f5c0 Binary files /dev/null and b/assets/images/custom_info-c995f34a9075f2f5857f847a2e04658a.png differ diff --git a/assets/images/doughnuts-2d879832c2d037ce9a01ad207fd9841a.png b/assets/images/doughnuts-2d879832c2d037ce9a01ad207fd9841a.png new file mode 100644 index 00000000..9b308761 Binary files /dev/null and b/assets/images/doughnuts-2d879832c2d037ce9a01ad207fd9841a.png differ diff --git a/assets/images/error-custom-41df2eb96a3a777409b1207642ce4c73.png b/assets/images/error-custom-41df2eb96a3a777409b1207642ce4c73.png new file mode 100644 index 00000000..e7102382 Binary files /dev/null and b/assets/images/error-custom-41df2eb96a3a777409b1207642ce4c73.png differ diff --git a/assets/images/error-d01e51989a997747e5c6faec756e1ddb.png b/assets/images/error-d01e51989a997747e5c6faec756e1ddb.png new file mode 100644 index 00000000..3e340d45 Binary files /dev/null and b/assets/images/error-d01e51989a997747e5c6faec756e1ddb.png differ diff --git a/assets/images/error-darkMode-32f76a3e561eaaf7252e67b7dcd4ceaa.png b/assets/images/error-darkMode-32f76a3e561eaaf7252e67b7dcd4ceaa.png new file mode 100644 index 00000000..f69de1e8 Binary files /dev/null and b/assets/images/error-darkMode-32f76a3e561eaaf7252e67b7dcd4ceaa.png differ diff --git a/assets/images/error-global-e7a8e87e13839002f9f7a83039df5d1a.png b/assets/images/error-global-e7a8e87e13839002f9f7a83039df5d1a.png new file mode 100644 index 00000000..f6ddf283 Binary files /dev/null and b/assets/images/error-global-e7a8e87e13839002f9f7a83039df5d1a.png differ diff --git a/assets/images/error-global-type-b2f0a5a2a67e3ab2b40ca53f171855f2.png b/assets/images/error-global-type-b2f0a5a2a67e3ab2b40ca53f171855f2.png new file mode 100644 index 00000000..3838f96c Binary files /dev/null and b/assets/images/error-global-type-b2f0a5a2a67e3ab2b40ca53f171855f2.png differ diff --git a/assets/images/global-example-0368ec3206e0e42200a8cbad5a547946.png b/assets/images/global-example-0368ec3206e0e42200a8cbad5a547946.png new file mode 100644 index 00000000..1be3c415 Binary files /dev/null and b/assets/images/global-example-0368ec3206e0e42200a8cbad5a547946.png differ diff --git a/assets/images/incorrect-login-2846bf481c43dc86cc3105f576998eae.png b/assets/images/incorrect-login-2846bf481c43dc86cc3105f576998eae.png new file mode 100644 index 00000000..db17ce38 Binary files /dev/null and b/assets/images/incorrect-login-2846bf481c43dc86cc3105f576998eae.png differ diff --git a/assets/images/incorrect-password-c051f8a12ce334891261d6f53e7e1598.png b/assets/images/incorrect-password-c051f8a12ce334891261d6f53e7e1598.png new file mode 100644 index 00000000..e3a85ffc Binary files /dev/null and b/assets/images/incorrect-password-c051f8a12ce334891261d6f53e7e1598.png differ diff --git a/assets/images/info-custom-1e034123bd95751712e9a7b0a1b2f0ca.png b/assets/images/info-custom-1e034123bd95751712e9a7b0a1b2f0ca.png new file mode 100644 index 00000000..10f9420e Binary files /dev/null and b/assets/images/info-custom-1e034123bd95751712e9a7b0a1b2f0ca.png differ diff --git a/assets/images/info-darkMode-31cafaa98e3be111ce5af33eb3c73587.png b/assets/images/info-darkMode-31cafaa98e3be111ce5af33eb3c73587.png new file mode 100644 index 00000000..516cb1a5 Binary files /dev/null and b/assets/images/info-darkMode-31cafaa98e3be111ce5af33eb3c73587.png differ diff --git a/assets/images/info-dca0aa128106f93350a83b2bfaf8c0a2.png b/assets/images/info-dca0aa128106f93350a83b2bfaf8c0a2.png new file mode 100644 index 00000000..d1c4197c Binary files /dev/null and b/assets/images/info-dca0aa128106f93350a83b2bfaf8c0a2.png differ diff --git a/assets/images/info-global-8806cb51dad5e283ba73f62abef7b4c0.png b/assets/images/info-global-8806cb51dad5e283ba73f62abef7b4c0.png new file mode 100644 index 00000000..6ec861fd Binary files /dev/null and b/assets/images/info-global-8806cb51dad5e283ba73f62abef7b4c0.png differ diff --git a/assets/images/info-global-type-3e4192bdb309c1d53ee458a93c589b40.png b/assets/images/info-global-type-3e4192bdb309c1d53ee458a93c589b40.png new file mode 100644 index 00000000..2253d517 Binary files /dev/null and b/assets/images/info-global-type-3e4192bdb309c1d53ee458a93c589b40.png differ diff --git a/assets/images/less-rounded-success-4c3fcb35906613964e00ec32edb9672b.png b/assets/images/less-rounded-success-4c3fcb35906613964e00ec32edb9672b.png new file mode 100644 index 00000000..9486dd83 Binary files /dev/null and b/assets/images/less-rounded-success-4c3fcb35906613964e00ec32edb9672b.png differ diff --git a/assets/images/login-form-c3f183c3c2dd317eaf2a03cd8a7f1f9a.png b/assets/images/login-form-c3f183c3c2dd317eaf2a03cd8a7f1f9a.png new file mode 100644 index 00000000..00b83a73 Binary files /dev/null and b/assets/images/login-form-c3f183c3c2dd317eaf2a03cd8a7f1f9a.png differ diff --git a/assets/images/login-success-46bc9193d8daa99ae1862cc47321a7c4.png b/assets/images/login-success-46bc9193d8daa99ae1862cc47321a7c4.png new file mode 100644 index 00000000..7cb03717 Binary files /dev/null and b/assets/images/login-success-46bc9193d8daa99ae1862cc47321a7c4.png differ diff --git a/assets/images/logo-6fd648117f8c3f17cee970d375d86c98.svg b/assets/images/logo-6fd648117f8c3f17cee970d375d86c98.svg new file mode 100644 index 00000000..2f9761e1 --- /dev/null +++ b/assets/images/logo-6fd648117f8c3f17cee970d375d86c98.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/monochromatic-81b41ed5594598a9a47035f17f113c2e.png b/assets/images/monochromatic-81b41ed5594598a9a47035f17f113c2e.png new file mode 100644 index 00000000..034ac3df Binary files /dev/null and b/assets/images/monochromatic-81b41ed5594598a9a47035f17f113c2e.png differ diff --git a/assets/images/monochromatic-darkMode-4ac872b5411247049cb53f50e4c5e912.png b/assets/images/monochromatic-darkMode-4ac872b5411247049cb53f50e4c5e912.png new file mode 100644 index 00000000..4bbaf791 Binary files /dev/null and b/assets/images/monochromatic-darkMode-4ac872b5411247049cb53f50e4c5e912.png differ diff --git a/assets/images/no-border-cc0d825b15445afb750531743ca05dae.png b/assets/images/no-border-cc0d825b15445afb750531743ca05dae.png new file mode 100644 index 00000000..721cb2cf Binary files /dev/null and b/assets/images/no-border-cc0d825b15445afb750531743ca05dae.png differ diff --git a/assets/images/no-icon-16a8557cdbaf3984ccf20ad43450dc8e.png b/assets/images/no-icon-16a8557cdbaf3984ccf20ad43450dc8e.png new file mode 100644 index 00000000..5eee001c Binary files /dev/null and b/assets/images/no-icon-16a8557cdbaf3984ccf20ad43450dc8e.png differ diff --git a/assets/images/rounded-error-de255e75a397183cc85d9ee5432b18f6.png b/assets/images/rounded-error-de255e75a397183cc85d9ee5432b18f6.png new file mode 100644 index 00000000..be0e5753 Binary files /dev/null and b/assets/images/rounded-error-de255e75a397183cc85d9ee5432b18f6.png differ diff --git a/assets/images/rounded-success-0cfb4740a8a97a66975d9089bf51c0a4.png b/assets/images/rounded-success-0cfb4740a8a97a66975d9089bf51c0a4.png new file mode 100644 index 00000000..2afd4e63 Binary files /dev/null and b/assets/images/rounded-success-0cfb4740a8a97a66975d9089bf51c0a4.png differ diff --git a/assets/images/success-custom-801a088c6de2da9d6b8b6b213c7f583a.png b/assets/images/success-custom-801a088c6de2da9d6b8b6b213c7f583a.png new file mode 100644 index 00000000..9102a8da Binary files /dev/null and b/assets/images/success-custom-801a088c6de2da9d6b8b6b213c7f583a.png differ diff --git a/assets/images/success-darkMode-fd614fef48b4bab04ed15f471284f2ac.png b/assets/images/success-darkMode-fd614fef48b4bab04ed15f471284f2ac.png new file mode 100644 index 00000000..f10fe5ca Binary files /dev/null and b/assets/images/success-darkMode-fd614fef48b4bab04ed15f471284f2ac.png differ diff --git a/assets/images/success-global-bb0298ebba24a7e58e5fbee40f0abf03.png b/assets/images/success-global-bb0298ebba24a7e58e5fbee40f0abf03.png new file mode 100644 index 00000000..a1442dec Binary files /dev/null and b/assets/images/success-global-bb0298ebba24a7e58e5fbee40f0abf03.png differ diff --git a/assets/images/success-global-type-1bea57007ceac25fe4e39601dc68cb26.png b/assets/images/success-global-type-1bea57007ceac25fe4e39601dc68cb26.png new file mode 100644 index 00000000..28703d5c Binary files /dev/null and b/assets/images/success-global-type-1bea57007ceac25fe4e39601dc68cb26.png differ diff --git a/assets/images/success-props-970843c88edd02c5a096565bb32df1fa.png b/assets/images/success-props-970843c88edd02c5a096565bb32df1fa.png new file mode 100644 index 00000000..8d103e2d Binary files /dev/null and b/assets/images/success-props-970843c88edd02c5a096565bb32df1fa.png differ diff --git a/assets/images/warning-custom-ce62b9c0f3b54c8025e204cf0cd3f466.png b/assets/images/warning-custom-ce62b9c0f3b54c8025e204cf0cd3f466.png new file mode 100644 index 00000000..910e26a7 Binary files /dev/null and b/assets/images/warning-custom-ce62b9c0f3b54c8025e204cf0cd3f466.png differ diff --git a/assets/images/warning-darkMode-cd0d8fe07bf0489397139d8c34313ed6.png b/assets/images/warning-darkMode-cd0d8fe07bf0489397139d8c34313ed6.png new file mode 100644 index 00000000..f940ece7 Binary files /dev/null and b/assets/images/warning-darkMode-cd0d8fe07bf0489397139d8c34313ed6.png differ diff --git a/assets/images/warning-e3ec3db1438e052479cc7f2f421e5c88.png b/assets/images/warning-e3ec3db1438e052479cc7f2f421e5c88.png new file mode 100644 index 00000000..9e40b9fa Binary files /dev/null and b/assets/images/warning-e3ec3db1438e052479cc7f2f421e5c88.png differ diff --git a/assets/images/warning-global-20900012614dd1f6aa99f3a3fa9a2e25.png b/assets/images/warning-global-20900012614dd1f6aa99f3a3fa9a2e25.png new file mode 100644 index 00000000..20a6e4ed Binary files /dev/null and b/assets/images/warning-global-20900012614dd1f6aa99f3a3fa9a2e25.png differ diff --git a/assets/images/warning-global-type-21095ea82c7e9646e151a7e28edb1787.png b/assets/images/warning-global-type-21095ea82c7e9646e151a7e28edb1787.png new file mode 100644 index 00000000..d08d1a09 Binary files /dev/null and b/assets/images/warning-global-type-21095ea82c7e9646e151a7e28edb1787.png differ diff --git a/assets/js/130705e3.f9f991d9.js b/assets/js/130705e3.f9f991d9.js new file mode 100644 index 00000000..4a3e0a8f --- /dev/null +++ b/assets/js/130705e3.f9f991d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[658],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return f}});var i=n(7294);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 i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=i.createContext({}),c=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return n?i.createElement(f,r(r({ref:t},p),{},{components:n})):i.createElement(f,r({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:o,r[1]=l;for(var c=2;canimationConfig",id:"animationconfig",level:3},{value:"createNotifications()",id:"createnotifications",level:3},{value:"generateAnimationConfig()",id:"generateanimationconfig",level:3},{value:"modify()",id:"modify",level:3},{value:"NotificationsProvider",id:"notificationsprovider",level:3},{value:"notify()",id:"notify",level:3},{value:"remove()",id:"remove",level:3},{value:"useNotifications()",id:"usenotifications",level:3},{value:"useNotificationsController()",id:"usenotificationscontroller",level:3}],p={toc:c};function u(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,i.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\ufe0f-api-reference"},"\u2699\ufe0f API Reference"),(0,o.kt)("p",null,"Below you will find a brief description of all the methods and properties that the library exposes.\nAll entries are sorted alphabetically."),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"animationconfig"},(0,o.kt)("inlineCode",{parentName:"h3"},"animationConfig")),(0,o.kt)("p",null,"A parameter used to configure the animation. It can be set up for the entire app or selectively for a particular notification.\nBelow is the global configuration:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { createNotifications, RotateInRotateOut } from 'react-native-notificated'\n\nconst { NotificationsProvider } = createNotifications({\n animationConfig: RotateInRotateOut,\n})\n")),(0,o.kt)("p",null,"It can also be overwritten in the local scope when calling the notification:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { SlideInLeftSlideOutRight } from 'react-native-notificated'\n\n[...]\n\nnotify('success', {\n params: {\n title: 'Success',\n description: 'This is where the toast text goes',\n },\n config: {\n animationConfig: SlideInLeftSlideOutRight,\n },\n})\n")),(0,o.kt)("p",null,"We've prepared a couple of ready-to-use animations for you (just import them from the library):"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"RotateZIn")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ZoomInDownZoomOutUp")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ZoomInDownZoomOutDown")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"RotateInRotateOut")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"SlideInLeftSlideOutRight")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ZoomInZoomOut")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"MoveUp")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"MoveDown")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"SlideInLeft")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"FadeInFadeOut")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"VeryCustomTransition")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"DiagonalSlideInLeftSlideOutRight"))),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"createnotifications"},(0,o.kt)("inlineCode",{parentName:"h3"},"createNotifications()")),(0,o.kt)("p",null,"API used to initialize the library in the project."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { createNotifications } from 'react-native-notificated'\n\nconst { NotificationsProvider } = createNotifications()\n")),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"createNotifications()")," invoked without any configuration, as in the above example, is fairly enough to use the library on its basic level.\nHere is an example of all available parameters that can be adjusted in ",(0,o.kt)("inlineCode",{parentName:"p"},"createNotifications()"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"const { NotificationsProvider } = createNotifications({\n duration: number // -> default 3000\n notificationPosition: NotificationPosition\n animationConfig: CustomAnimationConfig\n gestureConfig: GestureConfig\n isNotch?: boolean\n defaultStylesSettings: {\n darkMode: false,\n globalConfig: StyleProps\n successConfig: StyleProps\n errorConfig: StyleProps\n warningConfig: StyleProps\n infoConfig: StyleProps\n },\n variants: CustomVariants\n})\n")),(0,o.kt)("p",null,"Check out ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.github.io/react-native-notificated/docs/api/types#styleprops"},(0,o.kt)("inlineCode",{parentName:"a"},"StyleProps"))),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"defaultStylesSettings")," provides styles for all default notifications. ",(0,o.kt)("inlineCode",{parentName:"p"},"globalConfig")," is on the top of the hierarchy and distributes styles for all types of build-in notifications: success, error, warning, and info. For example, ",(0,o.kt)("inlineCode",{parentName:"p"},"successConfig")," (if provided) will overwrite ",(0,o.kt)("inlineCode",{parentName:"p"},"globalConfig")," styles only for 'success' notifications. ",(0,o.kt)("inlineCode",{parentName:"p"},"successConfig")," styles can be overwritten on the lowest level when calling a 'success' notification using ",(0,o.kt)("inlineCode",{parentName:"p"},"notify()"),". Check out ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.github.io/react-native-notificated/docs/comprehensive-configuration/order-of-settings-overwriting"},(0,o.kt)("inlineCode",{parentName:"a"},"Order of settings overwriting"))," for more details."),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"generateanimationconfig"},(0,o.kt)("inlineCode",{parentName:"h3"},"generateAnimationConfig()")),(0,o.kt)("p",null,"This method allows to set up custom animations."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"generateAnimationConfig(config: CustomAnimationConfig)\n")),(0,o.kt)("p",null,"Check out ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.github.io/react-native-notificated/docs/api/types#customanimationconfig"},(0,o.kt)("inlineCode",{parentName:"a"},"CustomAnimationConfig"))," and ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.github.io/react-native-notificated/docs/animations/custom-transitions"},(0,o.kt)("inlineCode",{parentName:"a"},"Custom transitions"))),(0,o.kt)("p",null,"It takes four properties:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"animationConfigIn")," // -> REQUIRED"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"animationConfigOut")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"transitionInStyles")," // -> REQUIRED"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"transitionOutStyles"))),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},'import { generateAnimationConfig } from \'react-native-notificated\'\n\nconst myCustomAnimation = generateAnimationConfig({\n animationConfigIn: {\n type: "timing" | "spring",\n config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations\n },\n animationConfigOut: {\n type: "timing" | "spring",\n config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations\n },\n transitionInStyles: (progress: SharedValue) => AnimatedStylesType // -> must be a worklet / Reanimated type declarations\n transitionOutStyles: (progress: SharedValue) => AnimatedStylesType // -> must be a worklet / Reanimated type declarations\n})\n')),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"modify"},(0,o.kt)("inlineCode",{parentName:"h3"},"modify()")),(0,o.kt)("p",null,"Method returned from ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotifications()")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotificationsController()")," hooks.\nThis method is very similar to notify.\nThe main difference is that you have the opportunity to change the existing notifications."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"modify(id: string, setup: { params: NotificationParams; config?: NotificationConfigParams }): void\n")),(0,o.kt)("p",null,"Jump to ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.github.io/react-native-notificated/docs/api/types#notificationparams"},(0,o.kt)("inlineCode",{parentName:"a"},"NotificationParams"))," and ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.github.io/react-native-notificated/docs/api/types#notificationconfigparams"},(0,o.kt)("inlineCode",{parentName:"a"},"NotificationConfigParams"))),(0,o.kt)("p",null,"The sample code below shows how the method should be implemented:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { useNotifications } from 'react-native-notificated'\n\nconst SomeFunctionComponent = () => {\n const [id, setId] = useState('')\n const { modify, notify } = useNotifications()\n\n return (\n \n \n setId(\n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n },\n }).id\n )\n }\n />\n \n modify(id, {\n params: {\n title: 'Hello',\n description: 'Wow, that was easy',\n },\n })\n }\n >\n \n )\n}\n")),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"notificationsprovider"},(0,o.kt)("inlineCode",{parentName:"h3"},"NotificationsProvider")),(0,o.kt)("p",null,"A provider, which acts as the notifications root. Depending on where you mount it, this is where the notifications will get rendered in your component tree."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"return (\n <>\n \n \n \n)\n")),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"notify"},(0,o.kt)("inlineCode",{parentName:"h3"},"notify()")),(0,o.kt)("p",null,"This method is responsible for launching notification (default or custom, if implemented).\nReturned from the ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotifications()")," hook."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"notify(notificationType: string, setup: { params: NotificationParams; config?: NotificationConfigParams }): string\n")),(0,o.kt)("p",null,"Jump to ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.github.io/react-native-notificated/docs/api/types#notificationparams"},(0,o.kt)("inlineCode",{parentName:"a"},"NotificationParams"))," and ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.github.io/react-native-notificated/docs/api/types#notificationconfigparams"},(0,o.kt)("inlineCode",{parentName:"a"},"NotificationConfigParams"))),(0,o.kt)("p",null,"The sample code below shows how it should be implemented:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { useNotifications } from 'react-native-notificated'\n\nconst SomeFunctionComponent = () => {\n const { notify } = useNotifications()\n\n const notificationMetadata = notify('success', {\n params: {\n title: 'Hello',\n description: 'Wow, that was easy',\n },\n })\n}\n")),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"notify()")," returns the notification id.\nThe ID can be later used to manipulate this particular notification (to remove or update content)."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"[...]\n const notificationID = notify('success', {\n params: {\n title: 'Hello',\n description: 'Wow, that was easy',\n },\n }).id\n[...]\n")),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"remove"},(0,o.kt)("inlineCode",{parentName:"h3"},"remove()")),(0,o.kt)("p",null,"This method removes the notification. It is returned from the ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotifications()")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotificationsController()")," hooks."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"remove(id: string): void\n")),(0,o.kt)("p",null,"The sample code below shows how it works:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { useNotifications } from 'react-native-notificated'\n\nconst SomeFunctionComponent = () => {\n const [id, setId] = useState('')\n const { remove, notify } = useNotifications()\n\n return (\n \n \n setId(\n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n },\n }).id\n )\n }\n />\n remove(id)}\n >\n \n )\n}\n")),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"usenotifications"},(0,o.kt)("inlineCode",{parentName:"h3"},"useNotifications()")),(0,o.kt)("p",null,"The hook is imported from 'react-native-notificated' and can be used only inside the function component."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { useNotifications } from 'react-native-notificated'\n\nconst SomeFunctionComponent = () => {\n const { notify, modify, remove } = useNotifications()\n\n [...]\n}\n")),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotifications()")," provides three methods: notify, modify, and remove - described separately."),(0,o.kt)("hr",null),(0,o.kt)("h3",{id:"usenotificationscontroller"},(0,o.kt)("inlineCode",{parentName:"h3"},"useNotificationsController()")),(0,o.kt)("p",null,"The hook is imported from 'react-native-notificated' and can be used only inside the function component."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { useNotificationsController } from 'react-native-notificated'\n\nconst SomeFunctionComponent = () => {\n const { modify, remove } = useNotifications()\n\n [...]\n}\n")),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotificationsController()")," provides two methods: modify and remove - described separately."),(0,o.kt)("hr",null))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/134332ea.b557c3a4.js b/assets/js/134332ea.b557c3a4.js new file mode 100644 index 00000000..843382c2 --- /dev/null +++ b/assets/js/134332ea.b557c3a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[322],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return m}});var o=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function r(t){for(var e=1;e=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var l=o.createContext({}),c=function(t){var e=o.useContext(l),n=e;return t&&(n="function"==typeof t?t(e):r(r({},e),t)),n},p=function(t){var e=c(t.components);return o.createElement(l.Provider,{value:e},t.children)},u="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},d=o.forwardRef((function(t,e){var n=t.components,i=t.mdxType,a=t.originalType,l=t.parentName,p=s(t,["components","mdxType","originalType","parentName"]),u=c(n),d=i,m=u["".concat(l,".").concat(d)]||u[d]||f[d]||a;return n?o.createElement(m,r(r({ref:e},p),{},{components:n})):o.createElement(m,r({ref:e},p))}));function m(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var a=n.length,r=new Array(a);r[0]=d;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s[u]="string"==typeof t?t:i,r[1]=s;for(var c=2;c {\n const { notify } = useNotifications()\n const [isModalOpened, setIsModalOpened] = useState(false)\n\n return (\n \n \n\n setIsModalOpened(true)} style={styles.modalButton}>\n Open Modal\n \n\n setIsModalOpened(false)}\n style={styles.modal}>\n \n\n setIsModalOpened(false)} style={styles.modalButton}>\n Close Modal\n \n\n \n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n isModalNotification: true,\n },\n }).id\n }\n />\n \n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n isModalNotification: true,\n },\n config: {\n duration: 2000,\n },\n })\n }\n />\n\n \n notify('warning', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Warning',\n isModalNotification: true,\n },\n })\n }\n />\n\n \n notify('info', {\n params: {\n description: 'This is where the toast text goes.',\n title: 'Info',\n isModalNotification: true,\n },\n config: {\n notificationPosition: 'bottom',\n },\n })\n }\n />\n \n \n )\n}\n")),(0,i.kt)("br",null),(0,i.kt)("h2",{id:"conclusion"},"Conclusion"),(0,i.kt)("p",null,"To display notifications over modal we have to use additional ModalNotificationsProvider. But because of how the library is built, it will result with multiple notifications being displayed (each for every NotificationsProvider or ModalNotificationsProvider). To address this problem, we need to pass additional property to notify function params: ",(0,i.kt)("strong",{parentName:"p"},"isModalNotification:true"),"."),(0,i.kt)("p",null,"You shouldn't pass isModalNotification to notify function if you are not using it with ModalNotificationsProvider as it won't work at all."),(0,i.kt)("p",null,"We also have props called ",(0,i.kt)("strong",{parentName:"p"},"notificationTopPosition"),". In other examples we are using ",(0,i.kt)("strong",{parentName:"p"},"notificationPosition")," but because styling in modal isn't so simple and we don't know what your modal looks like you have to pass notificationTopPosition by yourself. Keep in mind that notificationTopPosition={0} will render notification on top of your modal."),(0,i.kt)("p",null,"This is probably a temporary solution until we find something that will work globaly and out of the box."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1510c8cb.33c9926f.js b/assets/js/1510c8cb.33c9926f.js new file mode 100644 index 00000000..0b032773 --- /dev/null +++ b/assets/js/1510c8cb.33c9926f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[200],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var d=r.createContext({}),s=function(t){var e=r.useContext(d),n=e;return t&&(n="function"==typeof t?t(e):o(o({},e),t)),n},p=function(t){var e=s(t.components);return r.createElement(d.Provider,{value:e},t.children)},c="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},f=r.forwardRef((function(t,e){var n=t.components,a=t.mdxType,i=t.originalType,d=t.parentName,p=l(t,["components","mdxType","originalType","parentName"]),c=s(n),f=a,m=c["".concat(d,".").concat(f)]||c[f]||u[f]||i;return n?r.createElement(m,o(o({ref:e},p),{},{components:n})):r.createElement(m,o({ref:e},p))}));function m(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var i=n.length,o=new Array(i);o[0]=f;var l={};for(var d in e)hasOwnProperty.call(e,d)&&(l[d]=e[d]);l.originalType=t,l[c]="string"==typeof t?t:a,o[1]=l;for(var s=2;s {\n const { notify } = useNotifications()\n\n return (\n \n \n \n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }>\n Emit error\n \n \n )\n}\n")),(0,a.kt)("h1",{id:"-1"}),(0,a.kt)("p",null,"You will get the basic styling with the ",(0,a.kt)("inlineCode",{parentName:"p"},"borderType")," set for the ",(0,a.kt)("inlineCode",{parentName:"p"},"'border'")," value, the ",(0,a.kt)("inlineCode",{parentName:"p"},"darkMode")," set to ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),", and the ",(0,a.kt)("inlineCode",{parentName:"p"},"defaultIconType")," for the ",(0,a.kt)("inlineCode",{parentName:"p"},"color")," value. ",(0,a.kt)("br",null)),(0,a.kt)("h1",{id:"-2"}),(0,a.kt)("p",null,"(TO CHECK ",(0,a.kt)("inlineCode",{parentName:"p"},"borderType")," AND OTHER STYLE PROPS GO TO THE ",(0,a.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/default-variants-config/global-config"},"GLOBAL STYLES SETTINGS")," OR ",(0,a.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/default-variants-config/props-config"},"SINGLE NOTIFICATION CONFIG"),")."),(0,a.kt)("h1",{id:"-3"}),(0,a.kt)("p",null,"Below you will find the default styling for all notification types with ",(0,a.kt)("inlineCode",{parentName:"p"},"darkMode")," set to false and true for all variants."),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"NotificationType"),(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"th"},"darkMode")),(0,a.kt)("th",{parentName:"tr",align:null},"Visualisation"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Success"),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"false")),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("img",{alt:"Border",src:n(1727).Z,width:"756",height:"222"}))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Success"),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"true")),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("img",{alt:"Border",src:n(9581).Z,width:"736",height:"198"}))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null}),(0,a.kt)("td",{parentName:"tr",align:null}),(0,a.kt)("td",{parentName:"tr",align:null})),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Error"),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"false")),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("img",{alt:"Border",src:n(2706).Z,width:"742",height:"212"}))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Error"),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"true")),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("img",{alt:"Border",src:n(61).Z,width:"744",height:"204"}))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null}),(0,a.kt)("td",{parentName:"tr",align:null}),(0,a.kt)("td",{parentName:"tr",align:null})),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Warning"),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"false")),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("img",{alt:"Border",src:n(9699).Z,width:"746",height:"220"}))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Warning"),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"true")),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("img",{alt:"Border",src:n(1559).Z,width:"744",height:"202"}))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null}),(0,a.kt)("td",{parentName:"tr",align:null}),(0,a.kt)("td",{parentName:"tr",align:null})),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Info"),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"false")),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("img",{alt:"Border",src:n(9610).Z,width:"748",height:"214"}))),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Info"),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"true")),(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("img",{alt:"Border",src:n(5123).Z,width:"742",height:"212"}))))))}c.isMDXComponent=!0},1727:function(t,e,n){e.Z=n.p+"assets/images/border-d40e328e8fc7581aa6c0499b55bd68e9.png"},61:function(t,e,n){e.Z=n.p+"assets/images/error-darkMode-32f76a3e561eaaf7252e67b7dcd4ceaa.png"},2706:function(t,e,n){e.Z=n.p+"assets/images/error-d01e51989a997747e5c6faec756e1ddb.png"},5123:function(t,e,n){e.Z=n.p+"assets/images/info-darkMode-31cafaa98e3be111ce5af33eb3c73587.png"},9610:function(t,e,n){e.Z=n.p+"assets/images/info-dca0aa128106f93350a83b2bfaf8c0a2.png"},9581:function(t,e,n){e.Z=n.p+"assets/images/success-darkMode-fd614fef48b4bab04ed15f471284f2ac.png"},1559:function(t,e,n){e.Z=n.p+"assets/images/warning-darkMode-cd0d8fe07bf0489397139d8c34313ed6.png"},9699:function(t,e,n){e.Z=n.p+"assets/images/warning-e3ec3db1438e052479cc7f2f421e5c88.png"}}]); \ No newline at end of file diff --git a/assets/js/17896441.73382181.js b/assets/js/17896441.73382181.js new file mode 100644 index 00000000..8092e0c1 --- /dev/null +++ b/assets/js/17896441.73382181.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[918],{3332:function(e,t,a){a.r(t),a.d(t,{default:function(){return _e}});var n=a(7294),l=a(1944),r=a(902);const s=n.createContext(null);function o(e){let{children:t,content:a}=e;const l=function(e){return(0,n.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(a);return n.createElement(s.Provider,{value:l},t)}function c(){const e=(0,n.useContext)(s);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:a}=c();return n.createElement(l.d,{title:e.title,description:e.description,keywords:t.keywords,image:a.image??t.image})}var d=a(4334),m=a(7524),u=a(3117),b=a(5999),p=a(9960);function v(e){const{permalink:t,title:a,subLabel:l,isNext:r}=e;return n.createElement(p.Z,{className:(0,d.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&n.createElement("div",{className:"pagination-nav__sublabel"},l),n.createElement("div",{className:"pagination-nav__label"},a))}function h(e){const{previous:t,next:a}=e;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,b.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&n.createElement(v,(0,u.Z)({},t,{subLabel:n.createElement(b.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&n.createElement(v,(0,u.Z)({},a,{subLabel:n.createElement(b.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function E(){const{metadata:e}=c();return n.createElement(h,{previous:e.previous,next:e.next})}var g=a(2263),f=a(143),_=a(5281),N=a(373),Z=a(4477);const k={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(b.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(b.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function L(e){const t=k[e.versionMetadata.banner];return n.createElement(t,e)}function T(e){let{versionLabel:t,to:a,onClick:l}=e;return n.createElement(b.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(p.Z,{to:a,onClick:l},n.createElement(b.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function U(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,g.Z)(),{pluginId:r}=(0,f.gA)({failfast:!0}),{savePreferredVersionName:s}=(0,N.J)(r),{latestDocSuggestion:o,latestVersionSuggestion:c}=(0,f.Jo)(r),i=o??(m=c).docs.find((e=>e.id===m.mainDocId));var m;return n.createElement("div",{className:(0,d.Z)(t,_.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(L,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(T,{versionLabel:c.label,to:i.path,onClick:()=>s(c.name)})))}function w(e){let{className:t}=e;const a=(0,Z.E)();return a.banner?n.createElement(U,{className:t,versionMetadata:a}):null}function C(e){let{className:t}=e;const a=(0,Z.E)();return a.badge?n.createElement("span",{className:(0,d.Z)(t,_.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(b.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a}=e;return n.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:n.createElement("b",null,n.createElement("time",{dateTime:new Date(1e3*t).toISOString()},a))}}," on {date}")}function x(e){let{lastUpdatedBy:t}=e;return n.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:n.createElement("b",null,t)}}," by {user}")}function A(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a,lastUpdatedBy:l}=e;return n.createElement("span",{className:_.k.common.lastUpdated},n.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&a?n.createElement(y,{lastUpdatedAt:t,formattedLastUpdatedAt:a}):"",byUser:l?n.createElement(x,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var M="iconEdit_Z9Sw";function B(e){let{className:t,...a}=e;return n.createElement("svg",(0,u.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(M,t),"aria-hidden":"true"},a),n.createElement("g",null,n.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function I(e){let{editUrl:t}=e;return n.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:_.k.common.editThisPage},n.createElement(B,null),n.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var V="tag_zVej",H="tagRegular_sFm0",P="tagWithCount_h2kH";function D(e){let{permalink:t,label:a,count:l}=e;return n.createElement(p.Z,{href:t,className:(0,d.Z)(V,l?P:H)},a,l&&n.createElement("span",null,l))}var S="tags_jXut",F="tag_QGVx";function O(e){let{tags:t}=e;return n.createElement(n.Fragment,null,n.createElement("b",null,n.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),n.createElement("ul",{className:(0,d.Z)(S,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:a}=e;return n.createElement("li",{key:a,className:F},n.createElement(D,{label:t,permalink:a}))}))))}var z="lastUpdated_vwxv";function R(e){return n.createElement("div",{className:(0,d.Z)(_.k.docs.docFooterTagsRow,"row margin-bottom--sm")},n.createElement("div",{className:"col"},n.createElement(O,e)))}function j(e){let{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:l,formattedLastUpdatedAt:r}=e;return n.createElement("div",{className:(0,d.Z)(_.k.docs.docFooterEditMetaRow,"row")},n.createElement("div",{className:"col"},t&&n.createElement(I,{editUrl:t})),n.createElement("div",{className:(0,d.Z)("col",z)},(a||l)&&n.createElement(A,{lastUpdatedAt:a,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function q(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:a,formattedLastUpdatedAt:l,lastUpdatedBy:r,tags:s}=e,o=s.length>0,i=!!(t||a||r);return o||i?n.createElement("footer",{className:(0,d.Z)(_.k.docs.docFooter,"docusaurus-mt-lg")},o&&n.createElement(R,{tags:s}),i&&n.createElement(j,{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var G=a(6043),J=a(3743),Q="tocCollapsibleButton_TO0P",W="tocCollapsibleButtonExpanded_MG3E";function X(e){let{collapsed:t,...a}=e;return n.createElement("button",(0,u.Z)({type:"button"},a,{className:(0,d.Z)("clean-btn",Q,!t&&W,a.className)}),n.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}var $="tocCollapsible_ETCw",K="tocCollapsibleContent_vkbj",Y="tocCollapsibleExpanded_sAul";function ee(e){let{toc:t,className:a,minHeadingLevel:l,maxHeadingLevel:r}=e;const{collapsed:s,toggleCollapsed:o}=(0,G.u)({initialState:!0});return n.createElement("div",{className:(0,d.Z)($,!s&&Y,a)},n.createElement(X,{collapsed:s,onClick:o}),n.createElement(G.z,{lazy:!0,className:K,collapsed:s},n.createElement(J.Z,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}var te="tocMobile_ITEo";function ae(){const{toc:e,frontMatter:t}=c();return n.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(_.k.docs.docTocMobile,te)})}var ne=a(9407);function le(){const{toc:e,frontMatter:t}=c();return n.createElement(ne.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:_.k.docs.docTocDesktop})}var re=a(2503),se=a(9588);function oe(e){let{children:t}=e;const a=function(){const{metadata:e,frontMatter:t,contentTitle:a}=c();return t.hide_title||void 0!==a?null:e.title}();return n.createElement("div",{className:(0,d.Z)(_.k.docs.docMarkdown,"markdown")},a&&n.createElement("header",null,n.createElement(re.Z,{as:"h1"},a)),n.createElement(se.Z,null,t))}var ce=a(2802),ie=a(8596),de=a(4996);function me(e){return n.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),n.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}var ue={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function be(e){let{children:t,href:a,isLast:l}=e;const r="breadcrumbs__link";return l?n.createElement("span",{className:r,itemProp:"name"},t):a?n.createElement(p.Z,{className:r,href:a,itemProp:"item"},n.createElement("span",{itemProp:"name"},t)):n.createElement("span",{className:r},t)}function pe(e){let{children:t,active:a,index:l,addMicrodata:r}=e;return n.createElement("li",(0,u.Z)({},r&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,d.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,n.createElement("meta",{itemProp:"position",content:String(l+1)}))}function ve(){const e=(0,de.Z)("/");return n.createElement("li",{className:"breadcrumbs__item"},n.createElement(p.Z,{"aria-label":(0,b.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,d.Z)("breadcrumbs__link",ue.breadcrumbsItemLink),href:e},n.createElement(me,{className:ue.breadcrumbHomeIcon})))}function he(){const e=(0,ce.s1)(),t=(0,ie.Ns)();return e?n.createElement("nav",{className:(0,d.Z)(_.k.docs.docBreadcrumbs,ue.breadcrumbsContainer),"aria-label":(0,b.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},n.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&n.createElement(ve,null),e.map(((t,a)=>{const l=a===e.length-1;return n.createElement(pe,{key:a,active:l,index:a,addMicrodata:!!t.href},n.createElement(be,{href:t.href,isLast:l},t.label))})))):null}var Ee="docItemContainer_Djhp",ge="docItemCol_VOVn";function fe(e){let{children:t}=e;const a=function(){const{frontMatter:e,toc:t}=c(),a=(0,m.i)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?n.createElement(ae,null):void 0,desktop:!r||"desktop"!==a&&"ssr"!==a?void 0:n.createElement(le,null)}}();return n.createElement("div",{className:"row"},n.createElement("div",{className:(0,d.Z)("col",!a.hidden&&ge)},n.createElement(w,null),n.createElement("div",{className:Ee},n.createElement("article",null,n.createElement(he,null),n.createElement(C,null),a.mobile,n.createElement(oe,null,t),n.createElement(q,null)),n.createElement(E,null))),a.desktop&&n.createElement("div",{className:"col col--3"},a.desktop))}function _e(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,a=e.content;return n.createElement(o,{content:e.content},n.createElement(l.FG,{className:t},n.createElement(i,null),n.createElement(fe,null,n.createElement(a,null))))}},4477:function(e,t,a){a.d(t,{E:function(){return o},q:function(){return s}});var n=a(7294),l=a(902);const r=n.createContext(null);function s(e){let{children:t,version:a}=e;return n.createElement(r.Provider,{value:a},t)}function o(){const e=(0,n.useContext)(r);if(null===e)throw new l.i6("DocsVersionProvider");return e}}}]); \ No newline at end of file diff --git a/assets/js/1ba8ff6a.dcdc93c4.js b/assets/js/1ba8ff6a.dcdc93c4.js new file mode 100644 index 00000000..a6d04184 --- /dev/null +++ b/assets/js/1ba8ff6a.dcdc93c4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[399],{3905:function(t,e,n){n.d(e,{Zo:function(){return f},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function a(t){for(var e=1;e=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var s=r.createContext({}),u=function(t){var e=r.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},f=function(t){var e=u(t.components);return r.createElement(s.Provider,{value:e},t.children)},l="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},b=r.forwardRef((function(t,e){var n=t.components,i=t.mdxType,o=t.originalType,s=t.parentName,f=c(t,["components","mdxType","originalType","parentName"]),l=u(n),b=i,d=l["".concat(s,".").concat(b)]||l[b]||p[b]||o;return n?r.createElement(d,a(a({ref:e},f),{},{components:n})):r.createElement(d,a({ref:e},f))}));function d(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var o=n.length,a=new Array(o);a[0]=b;var c={};for(var s in e)hasOwnProperty.call(e,s)&&(c[s]=e[s]);c.originalType=t,c[l]="string"==typeof t?t:i,a[1]=c;for(var u=2;u{let{scrollY:a}=e;const o=n?.scrollY;o&&(r.current?r.current=!1:a>=o?(c(),l(!1)):a{e.location.hash&&(r.current=!0,l(!1))})),{shown:n,scrollToTop:()=>o(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",o.k.common.backToTopButton,h,e&&E),type:"button",onClick:t})}var v=n(6550),g=n(7524),_=n(6668),k=n(1327),C=n(3117);function I(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}var N="collapseSidebarButton_PEFL",S="collapseSidebarButtonIcon_kv0_";function Z(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",N),onClick:t},a.createElement(I,{className:S}))}var y=n(9689),x=n(902);const T=Symbol("EmptyContext"),w=a.createContext(T);function L(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),r=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(w.Provider,{value:r},t)}var M=n(6043),A=n(8596),B=n(9960),F=n(2389);function P(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:r,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,_.L)(),f=function(e){const t=(0,F.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),v=(0,i._F)(t,r),g=(0,A.Mg)(h,r),{collapsed:k,setCollapsed:I}=(0,M.u)({initialState:()=>!!b&&(!v&&t.collapsed)}),{expandedItem:N,setExpandedItem:S}=function(){const e=(0,a.useContext)(w);if(e===T)throw new x.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!k),S(e?null:s),I(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const r=(0,x.D9)(t);(0,a.useEffect)((()=>{t&&!r&&n&&l(!1)}),[t,r,n,l])}({isActive:v,collapsed:k,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&null!=N&&N!==s&&E&&I(!0)}),[b,N,s,I,E]),a.createElement("li",{className:(0,l.Z)(o.k.docs.docSidebarItemCategory,o.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":k},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":g})},a.createElement(B.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":v}),onClick:b?e=>{n?.(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{n?.(t)},"aria-current":g?"page":void 0,"aria-expanded":b?!k:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(P,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(M.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:k},a.createElement(q,{items:m,tabIndex:k?-1:0,onItemClick:n,activePath:r,level:c+1})))}var W=n(3919),D=n(9471),R="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:n,activePath:r,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,r),E=(0,W.Z)(m);return a.createElement("li",{className:(0,l.Z)(o.k.docs.docSidebarItemLink,o.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(B.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&R,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(D.Z,null)))}var U="menuHtmlItem_M9Kj";function V(e){let{item:t,level:n,index:r}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(o.k.docs.docSidebarItemLink,o.k.docs.docSidebarItemLinkLevel(n),i&&[U,"menu__list-item"],s),key:r,dangerouslySetInnerHTML:{__html:c}})}function K(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(V,(0,C.Z)({item:t},n));default:return a.createElement(z,(0,C.Z)({item:t},n))}}function j(e){let{items:t,...n}=e;return a.createElement(L,null,t.map(((e,t)=>a.createElement(K,(0,C.Z)({key:t,item:e,index:t},n)))))}var q=(0,a.memo)(j),G="menu_SIkG",Y="menuWithAnnouncementBar_GW3s";function O(e){let{path:t,sidebar:n,className:r}=e;const c=function(){const{isActive:e}=(0,y.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{className:(0,l.Z)("menu thin-scrollbar",G,c&&Y,r)},a.createElement("ul",{className:(0,l.Z)(o.k.docs.docSidebarMenu,"menu__list")},a.createElement(q,{items:n,activePath:t,level:1})))}var X="sidebar_njMd",J="sidebarWithHideableNavbar_wUlq",Q="sidebarHidden_VK0M",$="sidebarLogo_isFc";function ee(e){let{path:t,sidebar:n,onCollapse:r,isHidden:o}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,_.L)();return a.createElement("div",{className:(0,l.Z)(X,c&&J,o&&Q)},c&&a.createElement(k.Z,{tabIndex:-1,className:$}),a.createElement(O,{path:t,sidebar:n}),i&&a.createElement(Z,{onClick:r}))}var te=a.memo(ee),ne=n(3102),ae=n(2961);const le=e=>{let{sidebar:t,path:n}=e;const r=(0,ae.e)();return a.createElement("ul",{className:(0,l.Z)(o.k.docs.docSidebarMenu,"menu__list")},a.createElement(q,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&r.toggle(),"link"===e.type&&r.toggle()},level:1}))};function re(e){return a.createElement(ne.Zo,{component:le,props:e})}var oe=a.memo(re);function ce(e){const t=(0,g.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(te,e),l&&a.createElement(oe,e))}var ie="expandButton_m80_",se="expandButtonIcon_BlDH";function de(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:ie,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:se}))}var me="docSidebarContainer_b6E3",ue="docSidebarContainerHidden_b3ry";function be(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function pe(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:r}=e;const{pathname:c}=(0,v.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),r((e=>!e))}),[r,i]);return a.createElement("aside",{className:(0,l.Z)(o.k.docs.docSidebarContainer,me,n&&ue),onTransitionEnd:e=>{e.currentTarget.classList.contains(me)&&n&&s(!0)}},a.createElement(be,null,a.createElement(ce,{sidebar:t,path:c,onCollapse:d,isHidden:i})),i&&a.createElement(de,{toggleSidebar:d}))}var he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function Ee(e){let{hiddenSidebarContainer:t,children:n}=e;const r=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(he.docMainContainer,(t||!r)&&he.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},n))}var fe="docPage__5DB",ve="docsWrapper_BCFX";function ge(e){let{children:t}=e;const n=(0,d.V)(),[l,r]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:ve},a.createElement(f,null),a.createElement("div",{className:fe},n&&a.createElement(pe,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:r}),a.createElement(Ee,{hiddenSidebarContainer:l},t)))}var _e=n(4972),ke=n(197);function Ce(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(ke.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(r.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function Ie(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(_e.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(Ce,e),a.createElement(r.FG,{className:(0,l.Z)(o.k.wrapper.docsPages,o.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(ge,null,c)))))}},4972:function(e,t,n){n.r(t),n.d(t,{default:function(){return c}});var a=n(7294),l=n(5999),r=n(1944),o=n(3285);function c(){return a.createElement(a.Fragment,null,a.createElement(r.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(o.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}},4477:function(e,t,n){n.d(t,{E:function(){return c},q:function(){return o}});var a=n(7294),l=n(902);const r=a.createContext(null);function o(e){let{children:t,version:n}=e;return a.createElement(r.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(r);if(null===e)throw new l.i6("DocsVersionProvider");return e}}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.e1690549.js b/assets/js/1df93b7f.e1690549.js new file mode 100644 index 00000000..4c0c1961 --- /dev/null +++ b/assets/js/1df93b7f.e1690549.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[237],{9641:function(A,t,e){e.r(t),e.d(t,{default:function(){return w}});var n=e(7294),h=e(3285),a=e(2263),I="heroContainer_i2aB",C="heroContent_mKPX",c="heroText_ryRM",b="heroTitle_qg2I",l="heroDescription_UJGW",u="underline_z_Wg",Q="heroButtons_r52D",d="heroButtonWhite_MMHY",r="heroButtonBlack_rhYy",Z="githubIcon_LkL1",m="heroLogo_U6bI",M="whiteLightningLeft_HjQT",s="blackLightningLeft_glxm",E="whiteLineLeft_HXEj",q="blackLineLeft_Qg9i",z="blueLineLeft_V2GT",i="blueLineRight_u6yL",v="whiteLineRight_SZnl",X="blackLineRight_zsrC",V="whiteLightningRight__xfS",Y="blackLightningRight_hY_v",g=e(2949);function k(){const[A,t]=(0,n.useState)("light"),e=(0,g.I)(),h="dark"===A,a=h?d:r,k=h?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADwCAYAAAA+VemSAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR42u3da5ycVZ0n8HN56vZUdXV30ekknf70hBAjoERW0bAgl4mZIAgI6DoLw6iDoDvIODp43xE/DuM6O47rel0ZF/E2yyACBiTYgGBCCAQSzI3cDTGprk5VV9e1n+u57Yt0M7l10nU9z6k+33dJd1f9zlPnX8/tPOdAoAXarl27EgsWLBgyDGMQITQIIRwAAMyHEPZBCFMAgJQQogchZAohEkIIEyGEIIQAQggAAEAIAYQQgHPOIYQ2hHCCc25DCEsAgIIQoiCEyAMARoUQGSFEhhBycGRk5ODZZ589IXsbaNODsgNoR+RyucGurq43Y4zfDAA4ByG0BACwGCE0b6oQ222y6HMAgD2c830AgFcZY9ur1er2/v7+tOxtpukCliKXy81LJpMXYoyXQQgvAAC8FWOckp2rFoyxAgDgFSHERsbYhkql8mJ/f/9h2blmG13AbVAsFodisdhyjPFlEMJLEUKLZO1VW2Vyb71fCLGOMbbGcZyne3t7D8rO1ek6qxcFxMjIiJlKpS7HGL8HIbQSIbS40wr2dCYLep8Q4klK6ROFQuGZBQsW2LJzdZrZ1ataaGxsrC+ZTF6NELp+smijsjMFCefc5Zw/yTl/pFqt/rqvry8vO1Mn0AXcgGw229PT03MdQuhGjPFyCKEhO5MKhBCUMfYM5/z+Uqn0q7lz55ZkZ9JmiW3bthmO41xFCHmAMeYIrSGMMYcQ8oDjOFdt3bpVfwHWSO+BZ6hUKg2ZpnkbxvjDCKFB2Xk6Eec8wxj7kW3bP+zp6dEXwLTGrF69GlmWtYIQsopzzmTvrWYLzjkjhKyyLGvF8PAwkt0PgkzvgU9idHQ03Nvbe5NhGHdODqzQJGGMbaeUfrNQKPx8YGDAl50naHQBHyWbzSZ6eno+ahjGnQihAdl5tP/AOc9QSr9ZKpV+MHfuXD28c5IuYABALpdLdnd332EYxqcQQn2y82jT45wXKKXfqFQq350zZ05Fdh7ZZnUBj4yMmHPmzLkdY/w5Xbhq4ZwXGGNfGx8f//78+fNn7QCRWVnAO3bsMM4666wPGobxFX1FWW2Th9Zf2r9//0/POeccKjtPu826ArZte0U4HP6mvjjVWRhj2wkhn4rFYk/LztJOs6aAK5XKolgs9g2M8XWzbVzybCGEAIyxRx3H+VQymdwvO087dPw9tnQ6HfV9/65EIvGqYRi6eDsYhBAYhnFtIpF41ff9u9LpdMePR+/o3mzb9qXhcPiHGOMlsrNo7ccY2+P7/sdM0/yd7Cyt0pF74PHx8aTv+/dEo9E1unhnL4zxkmg0+qzv+/cUCoWk7Dyt0HF7YNu2V0QikXsRQkOys2jBwTlPe573EdM0n5SdpZk6Zg+czWZN3/e/E41Gn9LFqx0PITQYjUaHfd//Xi6XM2XnaZaO2ANblrU0EoncjzE+V3YWLfgYY7s8z7sxHo9vlp2lUcrvgV3XvT0Wi23QxavNFMb47FgstsF13TtkZ2mUsgWcz+eThJAHI5HI9yCEHX+7QGsuCGE4Eol8hxDyYD6fV/YCl5KH0BMTE+fGYrFHJudO1rSGcM73OI7zvkQisV12lloptwd2HOeGWCy2QRev1iwIoSWxWOwFx3FukJ2l5uyyA8zUmjVrkOd5d0UikYcQQgnZebTOghBKRCKRhzzPu2vNmjXK1IUSh9DZbDaaSqXuMwzjv8rOonU+SukvSqXSh+bMmePKznI6gS/gSqXSZ5rmKozxRbKzaLMHY2y9ZVnv7e7uDvT81YEu4Gq1usg0zSf0+a4mA+d8j2VZVwb5yabAFrBlWUuj0egwQmie7Cza7MU5P+w4zpWJRCKQgz4CWcCu614YCoWeQAj1yM6iaZzzCiHkymg0ul52luMF7mqbZVnLw+Hwb3XxakGBEEqGw+GnLMtaITvLCdlkBziabdsro9Ho4xDCjhlsrnUGCKEZjUYfs2373bKzHJNLdoApk8W7Sg+L1IJMCOG7rvte0zR/IzsLAAHZA1uWtTwSieji1QJvcgz1I0E5nJa+B3Zd98JwOPxbfdisqUQIYfu+/2eyL2xJ3QNblrU0FAo9oYtXUw2E0AyFQk9YlnW+zBzSCrharS6avM+rrzZrSkIIJaPR6BOVSmWRtAwy3nRyeOQTepCGpjqE0Lx4PD5cLpelLM3T9gLOZrNR0zRX6eGRWqdACC2Ox+OPjY2Ntf0ibFsL+LnnnkOpVOo+/WCC1mkwxhd2d3f/ZO3atW2tqbZehfY8765wOPyVdr6nprWT7/tfjkQi/9Cu92tbATuOc0MkEnlIL22idTIhBPA8732xWOzhdrxfW6ppcg6rDXomDW024JxPOI7zn9sxx1bLj9fz+XxycgI6XbzarIAQSsRisYfaMdtlywu4u7v7Xn3FWZttEEJLuru77235+7TyxV3Xvd0wjPe3uhGaFkSGYby/1ZPHt+wc2LKspbFYbIPsBxSEEJwx9qgQIm0YRoExZgIAUgCAIQjhYoTQQn1hTU1CCMA5PyCE2AMASAMAChhjm1KaghAOYoyvhRBKHS4shPAdx1nWqmVcWtJzc7mcmUqlXg7CcieU0t+EQqErp/v56OhoT3d39ztCodAlEMKVCKF36IIOpsmCfUkI8SQh5LlyufzS/PnzS9P9PiFk2DCMlbJzM8Z2FQqFt/X399vNfu2W9FTf978TCoUCse6M53k3RqPRf5/p7xcKhXnxePw6jPGNCKFLdTHLNVm0axlj91uW9atUKnV4pn/ruu5NkUjk32S3AQAACCHfD4fDH2/26za9d9q2vSIajT4VhI7PObez2eycgYGBur75yuXywlgs9hGM8a163HZ7cc4PM8Z+5DjOvd3d3XXNCjk6Opro7+8fQwhJf85cCAFc170i0OsTj4+PJxljfxQBQQh5qBntOnjwYNh13ZsopZtkt6nTUUo3ua57czqdDjfjsyOEPCS7TVMYY4fGx8ebemupqSf4XV1dXw/S4tqMscea8TpDQ0N+NBr9f4ZhvM227T+jlK4VQshuXkehlK6zbfsKwzDeFo1Gfz44OOg343Wb1QeaASE02NXV9fVmvmbTjnNt2740Go2uCcKhMwBHDlmKxeL8M844Y8bnTDW29/JwOPxV/WBGYxhjL/q+/yXTNJ9uxeuPj4/P6+3tHQ1Sv3Rd909N0/yd7CyvS6fTUUrpbtmHKEejlG5rR9tt276WUrpTdntVQynd7TjODb/4xS9afpuHUvqq7PYe3/Z0Oi39vPx1vu/fJXujHI8Q8n/a1f6DBw8anufdwRgbl93uoGOMFT3P+2Qmk2nKOe5MEELukd3u4/m+f1cz2tbwcUWlUlmUSCRelT1g43i+7/9VJBL5cTvfs1Ao9CUSia8ZhnFrMw/ZOOdACHEQAJAWQmQAAIc551kIYQ4AkPc8z45EIvlKpeJ3dXUVLMvi+Xye27bNOefcNE2jv78fJRIJVC6XU93d3WHP8/oikYgJAOgTQvRDCOdCCPshhIMAgEEI4SBCqGl7RyEEYIz9yLKsL/T09OTa+bl4nvfhcDh8Xzvfcwbbw52YmHhTo+suNdzLCCGPGIZxnewNcryJiYm3dHV1bZXx3pZlXRiJRH6IMX5zLX/HGCsAALYKIXZwzncLIXbZtr1/7969B5YtW0bb2YYXX3zRWLJkyULTNBdBCM9GCL0RQnguAGApxjhVY7t2+L7/MdM017WzDVOq1erSRCKxRcZ7nwql9NFQKPReaQFs217BOZd9NHICxhjbtm2b1COCdDod9jzvi5xzb5qMVUrpMCHkbtd1rx0bGwvM1fvTGRsbG3Qc51rf9++mlA5TSssnayPn3PM8765m3RKq19atW8OMMSa7X55k+wjbtuXML71jxw6DUrpN9kY4GUrpXpkd5mgTExNnU0o3MMbKhJBVvu9/olqtnr9+/XpDdrZmWb9+PapUKuf7vn8HIeQRxliRUvryxMRETUcgrUQp3Su7X07TV7ft3Lmz/X3B87xbZDd+OoSQp2R3mKPt2rXL2Lx5c8cU7Ols3LjR2L17d6DaSwgZlt0vp+N53i1t3RiZTMZkjI3Ibvh0CCGBumChyUcIuU92v5wOY2xkdHS0rsUN6rrK2NfXdztCaED2h3IKLRm8oSktsH0CITSQSqVur+tva/2DsbGxJMb4c7IbfSqMsarsDFqwBL1PGIbxhbGxsZrHSddcwMlk8g6EkJRZ6GcqFAoVZGfQgiXofQIhlEomkzU/gltTAWez2YRhGHfKbuzpCCG47AxasHDOA98nDMO4M5vN1jT5Y00F3Nvb+1GEUE038WUIysB1LThU6BMIoVRPT89Ha/qbmf5iJpMJY4wDv/cFAADOudSBA1ogBeq21rQhDePOWsaJz7iAU6nUzQG/8vw6znngjxK09mKMBfq6zZTJK9I3z/j3Z/JLq1evRoZhfEp242YKQniG7AxasEAIe2VnmCnDMD41PDw8o9qc0S9ddtlly2sdmC8ThFDPX6UdA0KoxNEjAABgjN98ySWXLJ/J786ogMPh8N/IblQtIIQLZWfQggVCqMzDIgAAEAqFZlRzpy3gUqk0hDG+WnaDaqSXctGOp1SfwBhfXSqVTvulc9oCNk3zNtmz29fR+J5cLjcoO4cWDNlsdkCF259HgxAi0zRvO93vnbIwt27damCM2/ukRJMkk8kLZGfQgqG7u/sCFe4DHw9jfMu2bdtOefvrlAX8hje8YaUqt45OaBhCF8vOoAUDxvgS2RnqgRAaWLx48SmXhjllARuG8SHZjWig8XJmOtACB0I4oyu6QXS6Gpy2gLPZbA9C6FrZDagXQuj8YrGoz4NnuWKxOIgQeqvsHPVCCF2bzWZ7pv35dD/o6em5LghrytQLQgji8bhem3iWM03z/Sqe/05BCEV7enqmnTQSneIPb5QdvlEQQiXPfbTmQQgp3wdOVYsnLeCxsbE+jLGy5w0AAMA5P2hZllIDULTmsyzr45zzA7JzNAJjvDyfz590LPdJCziZTF4NIVTi6Y2TEUJMuK57TU9PT0Z2Fk2unp6ew67rXiOEmJCdpV4QQqOrq+ukg6lOWsAIoetlh66XEAJ4nvdX8XhcyqTuWvDE4/Htnud9SCi8ouR0NXlCAWcyGRMhtPL0LxlMlNJvx2KxX8rOoQVLLBZ7mFL6v2TnqBdCaGUmkzlh5soTCri3t/dyVa8+M8a25nK5QE+4p8lz+PDh/84Y2yw7Rz0QQtHe3t7LT/j/4/8DY/we2WHrIYSgrut+aHBw0JWdRQumoaEh13XdvxRCNGXx8HY7WW2eUMCqHj5TSv85kUgo+e2qtU8ikdhOKf0n2TnqcbLaPKaAi8XiEEJoseygteKcHxgfH/+q7ByaGsbGxr7GOW9oWU8ZEEKLi8XiMY8YHlPAsVhsuYqjVnzf/8z8+fNt2Tk0NSxYsMD1ff8zsnPUCkIIYrHYMWP8jylgjPFlskPWijH20rPPPvuw7ByaWmKx2MOMsRdl56jV8TV6zO6WUvoHjPEi2SFr4TjOFaZpPik7h6Yey7JWmKYZqJUsT4cxtt8wjLOm/v36HjiXy81DCClVvIyxjbp4tXrF4/GnKaUvyc5RC4TQolwu9/qkja8XcDKZvFC1819K6TdkZ9DUxhhTqg9BCEEymbxw6t+vFzDGeJnscLXgnB8+fPiwPvfVGpLJZH7FOVdqzPzRtfp6AUMIlZpDijH244ULFyp5Q14LjkWLFvmMsZ/KzlGLo2v16KvQysxaMPnAwk9k59A6g+u6P1HsQYfXaxUBAEAulxvEGCsz7SbnfHtXV9cu2Tm0zpBMJndxzpV5eg1jnJqaNhkBAEBXV5cyy6YAAADnXJ/7ak3FOf+V7Ay1mKpZBMCRtVhkB6oFIeRx2Rm0zqJan5qq2alz4DfJDjRTnPPK9u3bX5GdQ+ssO3fufIVzXpGdowZvAmCygFV6gEEIsW7ZsmVUdg6ts1xwwQVUCLFOdo6ZmqrZqT2wMgs/cc5fkJ1B60yc8w2yM9RgCQAAoF27diUQQv2y08wUY0wfPmstoVLfQgj179q1K4EWLFgwpNIQymq1ukN2Bq0zTUxMKNO3IIRgwYIFQygUCimz/Ajn3P79739/UHYOrTPt2LHjAOdcmSmZQqHQEIIQKlPAQoiDV1xxBZedQ+tMl112GRdCHJCdY6YghAMIQqjS8qFp2QG0jqdMH4MQDiAAwHzZQWqg1FMjmnqEEDnZGWowH0EI+xp/nfZgjKl0o11TkEqDOSCEfQhCqMxDDIZhFGRn0DqbYRh52RlmCkKYQgAAZQqYEMJkZ9A6G6VUpYukKSSE6Gn8ddpDCKHSxtUUxDlXZichhOhBCCGz8ZfStM6g0qAmhJCJhBAJ2UFmCkKIGn8VTZsehBDLzjBTQogEEkIoswfGGCuzcTU1GYY669oLIUyEEFJmr4YQUmfrakrinCuztC5CCCGVjvkppcpccNPUxDlPys4wUxBCoFQBG4ahzLejpiaMsTJ9DEIIlDl8BgAAxpgyo8Y0NQkhlOpjSKX5cCGE+hBaazVl+pgQQrkCVurbUVOPSn1MCAEQ50oNbprX+Eto2ikp08c45wBBCCdkB5kphFBqy5Ytyty31tSyffv2BEJImUNoCOGEUgUMIQQLFy5UZgYRTS1DQ0ODKt2VgRBOIM65LTtILSKRyELZGbTOFAqFlFrgnnNuIwhhSXaQWkAIlZnDWlOLSgscAAAAhLCEAABKPSSPEHqj7AxaZ1KwbxWQEEKpAoYQKrUQm6YO1fqWEKKEhBDKTCEy6XzZAbSOtVR2gFoIIXIIADAqO0gtMMY9hUJBqYsNWvAVi8VFGGNlbiFNGkVCCOWmajVN8x2yM2idJRaLXSg7Q62EEBkkhFBmIuspCKGLZWfQOgvG+BLZGWolhMggQoiKBXyp7AxaZ4EQvlN2hloRQg6ikZGRgyo90AAAAAihpfl8Xpkxq1qwjY+Pz0MIqXYFGqTT6QPo7LPPnuCcq7ScBIAQgkQisVJ2Dq0zxOPxlSoNoQQAAM754XPOOceeeqB/j+xAtcIYXyM7g9YZFO1L+wAAR2bk4Jzvk52mVgihd2cyGf1kktaQTCZjIoSukp2jVlM1O7UHflV2oFohhBK9vb3KbXgtWHp7e69SdHGDVwGYLGDG2A7ZaephGMZfys6gqU3VPjRVswgAAKrV6lbZgeqBMb6qWCzqq9FaXYrF4jyMsZJHcdVqdTsAkwXc39+fZowp9VADAABACI14PH6r7ByamuLx+K0QQuUWC2CMFfr7+w8CAI6ZVvYV2cHqgTH+60wmE5adQ1NLJpMJY4z/WnaOOr1eq68XsBBio+xU9UAIDaRSqZtk59DUkkqlbkIIDcjOUQ8hxIkFzBjbIDtYvQzD+MLOnTuVOxTS5Ni9e7dhGMYXZOeo19G1+noBVyqVF1UbUjkFY7zkzDPPvFl2Dk0Nf/Inf3IzxljJqZmEEKBarb449e9jxo9RSv+AMVbyWVvOeTqfz79x7ty5Sk3Sp7VXNps1+/r6diOElJzdlDF2wDCMM6f+fczaSEKIdbID1gshNNjb2/s52Tm0YOvt7f2cqsULAABCiLVH//uYAmaMrZEdsBGGYXx+YmJCyUMjrfUmJiaWGIbxWdk5GnF8jR5TwI7jPK3qeTAAAEAIw9Fo9N5NmzYpteqi1nqbN282otHovRBCZZYPPZ4QAjiO88zR/3fCM1SU0r0YY6Xmxz2e7/ufiUQi/yI7hxYcnud9OhwOf112jkYwxvYZhvGGo//vhD0V5/xJ2UEbFQqFvmrbtp43SwMAAGBZ1oWhUOhrsnM06mS1eUIBM8aekB20URDCcCQSeahcLvfLzqLJVSqV+qPR6IMqDpk83slq84QCLhaLz3DOXdlhG4UQGozH44+Mjo4qe86jNSabzUYTicQjKl91nsI5d4vF4jPH//8JBTwwMGBzzp+WHbgZMMYX9fX1/WzHjh3Kf/tqtTlw4ICRSqX+DWN8kewszcA5f3pgYOCEMQ5oml9+SHbgZjEM4/1nnXXWPc8//7y+Mj1LbNiwAc2fP/9ewzBukJ2lWTjnj8z4l/P5fB/nnIgO4nnevXpP3PnS6bThed5PZPe3ZuKck3w+31fThiCEDMsO3myEkAfS6bQ+J+5Q+Xw+Sgh5SHY/a0G/fWq6Nk97WMk5v1/2B9JshmF8YN68eU+Vy+Xavs20wCuVSvN6enqe7aTD5imnqsVpC7hUKv2qE65GHw9j/M5EIrHJtu0LZGfRmsOyrAu7urpexhgrt77R6XDO/XK5/PB0P5+2gOfOnVvinD8quwGtgBAaikajz7uu+4k1a9boi1uK2rx5s+F53qdjsdhznXCr6GQ454/29/eXpvv5Kaejdxznqmg0+rjsRrQSpfRpx3FuSyaTB2Rn0WZuYmJicTQavQ9jrNyaRrVwXfeaWCz26+l+fsq9z759+57knCu3/GgtDMNYEY/HX/U87+/S6bSeWyvg0ul01PO8vzdNc1unFy/nPLN///7fNPQivu/fLfsqXLtQSnfatn217A9OO9Fzzz2HHMf5AGPsD7L7Sbv4vv/VhjdcqVQa4pwz2Y1pJ0rpc7ZtL5fdaTUAnnnmGeQ4ztWU0k2y+0U7cc5ZuVxeeLrtM6Ml2QghqwzDuLaVHxTnnAshDgIACuDIof0gQqhP5qpxlNIXGWNf37t376PnnXcelRZkFhoZGYmeccYZHzAM406M8VLZedqNUvrrUCjUnEXXLMta0apvGkrpGtu2333o0KET1qcZHR3td133WkLI9xhjo7K+DSmlr/m+//lisajkNKQqqVQqi33f/5+MsayszzsIbNtu3vK5w8PDiFK6rdkhKaWvzfTC0bZt2wzHca4lhKyRtVE554QQ8rjneTeNjo4mZXf2TlEsFud5nnc7pfT5Iwdisxul9NVnn322ubc3Xde9pQVBd9eTxbbtlZTSV2VuZMaYRwh5zPO8W4vFYkfeg2ylcrm81Pf9z04W7ay6xnI6ruve0vQNnslkwoyxkRaErWs+53Q6HfZ9/+4gfPicc0EpfdX3/e94nndDLpfTC64dZd26dahcLr/Z9/2PEkLup5RKOx0KOsbY6MjIyIzH69d0hagV8wpxzl3Xda+Jx+N1PYNs2/blkUjkAYRQYGbfEEIAzvl+IcRLQohNjLFXSqXS1vnz5+dlZ2u1LVu2hBctWrQkHA4vhRD+J4TQWwEAF2CM9SnHDNQ6n1tNBZzNZhN9fX1/RAilmhlaCOH7vn9bNBr9aT1/X61WF8ZiseEgz7Y/WdQ5AMAOIcQeIcRexth+xtj+QqFwYGhoqNTwm7RJLpcLm6a5BGO8ECG0ECF0JgBgCYRwCYRwEUJIP7ZZB855oVAonDlnzpxKy97E87wvtuLQgXMufN//YT6fT9STq1gs9rfiQls7+L7/s927dyvT6Q8cOBCmlD4ge7t1Gt/3/77lH97Y2FiSMTbeqkYwxg45jnNdPdkKhcI8xthu2R9ELQghD6pUvFNGRkYMQsgq2duvUzDGxvP5fHtOMzzP+3QrGzO5N77n4MGDNT98X61WF7XyC6aZKKWb8vm8shMMFAqFBKV0i+zt2Al8369rxYi6hjmNjo6a/f39e1u9vipjbJ1t29ckk8mazg8dx1keiUSeghAG9lFBzrntOM5bEonEPtlZGjExMXG2aZq/V3nFA9k455mxsbE3zJs3r+aF+erq4PPnz7cppV9qdcMwxu+Mx+PPViqVmmbQiMViz1BK/0er8zWCUvol1YsXAAASicQuQkjL+0Ino5R+uZ7iBaDOAgYAgP379/+UMba91Y1DCJ1vmuYTuVyupvODsbGxu9uRrx6MsV3ZbPbbsnM0y9jY2LcZY3tk51ARY2zHoUOHfizlzW3bXtGuoW+EkCcOHTpU08Ue27YvDeLQPNd1PyDlA2sh13U/IHu7qoZz3vCY54bOEU3TfJox1pZpdwzDeHd/f39Nz0eaprmWMfajduSbKcbY/j179jzc+CsFy44dOx5mjCl/StBOjLFfm6Ypdy2ySqWyiHPutOsby3Gcq2rJNz4+3sMYOyT723ZKvVcbVeB53idlb19VcM69arXa8CqgDV+lTSaT+ymlbVn5DUIIwuHwfaVSacYXtc4444yS53l/IYTg7ch4KkIIPjEx8XPZOVrFsqyfCyH0c9MzQCn9p66uroaPWJpymyWXy/1zuy5iIIT64/H4t2r5G9M01xJC7mxHvlPhnK9LpVIdO8dYKpXKM8aeafyVOhtjbF8+n2/KTq8pBTw4OOj6vv8xIURbNgDG+KZap7yJRCL/mxDy3bYEnAZjrKNn+AQAAM75KtkZgkwIAXzf/9jAwEBT5lxv2kAH0zR/Ryn913ZshMlD6W/t3LmzpqvSW7du/Vvf9+t6YKIZCCEdv3eybbvj29gIxtiPTNMM5jYaHx9PtvOCkeu6H64144YNG5Dv+99q90ULxpi1adMm5cY814NSOtbu7asCxtih8fHxHtmfzynZtr2yXfdea5mS53iu6/43zrnXrg+PUvqC7M+mXQghT7Rru6pi8g7Ku5u9rZs+Vtg0zScppd9vR0fBGC/s6+u7qZ6/jUajP3AcZxljbHM7snLOd7TjfQIikCPgZKKU/iAWizU2SftJtGSwf7lc/gxjbFfrNwsAhmHcuXr16rraEY/HN2cymbf7vv83kw/bNx3nPE8I+RdCyJfbsT2CgHO+V3aGIGGM7alWq9LvgtTEsqzz23WIallWw5Owj46OmpMzI25p9BSAMVYkhPzMcZxrDxw4MOuWa3EcZ2VbjksVwDn3LMt6q+zPpC6u697ejo1ECHmwmbnL5fK5vu9/mhDyGKV05FQFzRhjlNK9hJCHPM/7rGVZF27cuHFWXKw6xfY7X3bhBIXrup+Q/Xk0hBDyYKs3Eufca+Wk63v37k2WSqWzfd9/R7lcXmFZ1qW2bb91fHx86IUXXpjVxXoy1b8qAtUAAAarSURBVGp1QHbhBAEh5KHh4eHAPpM+I/l8PtmOaW4IId+U3VbtiC1btvTJLh7ZGGN78/l8y28Ztfzboa+vr+I4zvVCiIlWvg/G+PZqtRrYWSlnk1Kp1NLPOugmZ1u5vq+vT5mZRk/LcZwbWn1/mBDy7IYNG9Q+ZOkQsveAsnDOheu675e9/VvC87y7Wr0BPc/r2Mf1VCK7kGTxPO/udm7ntu6tXnrppX+klP6ile8RCoW+5jhO81Z207QZopT+cuPGjW2939/2xXfHxsaivb29v8UYX9Sq9xBCVCzLeldXV9fGdrdPO0KINj2aFhCMsZeq1eqf9vb21jU5Xb2krJ5dLpf7EonE8wihll104pwXXNe9Mh6PvySjjbPdbCpgzvm+arV6cU9PT0tG852KlAs+3d3decuyruScH25ZwxBKxWKx3zqOc7WMNmqzA+c8Z1nWlTKKFwBJBQzAkal4XNe9gnPeskvtEMJEJBJZ5Xne3SMjI3rAhdZUnPOK4zhXJpNJaZP5STmEPprruheGw+GnIIR1LWo2U4yxja7r3pZIJNry9NFs1+mH0JxzmxByRTQaXSczh/R7ptFo9EXHcd7LOW/KFCPTwRhfYJrmJt/37ymXy4Oy262pSwjhu657veziBSAAe+AplmWtjMViq9qxxg7n3Oec/9R13e90dXVtld32TtSpe2AhhE8IeW8kEmn6s73KsyxrJWOsLXNMC3Fk1AyldJPv+58tlUrntqJNGzZsMCqVylLZ27bdZA+oaFF/8TzPa/qsGo0IzB54imVZy2Ox2GMQQrPd780Yywgh1gkhXuacb7dte9/evXsPLlu2zD/d37722mupOXPmDGCMF2GMl0AIz4EQngshXIoQMiGEgdvWrSREZ+2BOee267rXx+NxuSspHCeQncp13YtCodDjCCHpE4BxzgEAIM85LyGEKvzIgG6AEEIAgCgAoAcA0IcxPuWD+7qA1cU5r/i+/55YLCb9nPd4ge1UlmUtjUajwwihebKzNIMuYDVxznOO41yZSCRekZ3lZKRfhZ5OPB7fatv2xZxzvWylJgXnfJ9lWRcHtXgBCHABAwBAV1fXfsuyLmaMrZedRZtdGGMvVqvVi2UO0piJQBcwAAAkk8l8oVB4FyHk32Vn0WYHSukvK5XKu2QNj6xF4AsYAAD6+/vdF1544S983/9yh5xaaQEkjqxb9I8vv/zyn6dSqbY+VVQv5S6sOI5zXTgc/hlCqKVDL5tNX8QKNiGE7Xneh2Kx2C9lZ6mFkp1qYmLi3Fgs9kgrH0dsNl3AwcU53+M4zvsSiYRyK0oocQh9vEQisaNYLL691bN7aJ2PUvpwsVhcpmLxAqBoAQNwZLbLUCj0557nfVwI0dIHIbTOI4TwPc/726eeeuq/qDx7ZEcc1lmWtTQSidyPMW7JeOZm0IfQwcEY2+V53o3xeFz5R0uV3QMfLR6Pby0UCm8nhHw3wP1Gk0wIAQgh3y+VSm/rhOIFoEP2wEezbXtFJBK5FyE0JDvL0fQeWC7Oedr3/Y/EYrFAPYzQqI7YAx/NNM2ny+XyeYSQfw1YH9IkmNzr/t9SqXRepxUvAB24Bz6abduXhsPhH2KMpd9u0nvg9mOM7fN9/2OmaT4jO0urdNwe+Gimaa49fPjwW3zf/5K+Uj17CCFcQsg/ZLPZ8zq5eGeVSqWykBDySKvXZ5qO7Pa3m4xtzDkXhJDHqtXqYtnt11rEtu3llNItuoBbq93bl1K6TS+pM0ts2bLF8Dzvw4yxQ7qAW6Nd25UxNuJ53q27d+/W837PNul02vQ87+8YY2O6gJurDYU77vv+Z0dHR9s+d5oWMLlcLuF53udbWciy29hurSxcz/O+mM/nk7LbqAXM4cOHE57nfbLZh9ac81lXwM2+WDh5qPzpXC6n1GOkmgQjIyNh13U/2KyLXZTSEdltajdK6UiTtt0213VvyWQy4cZTabOOZVnLJ28/sXo7ISHkJ7Lb0W6EkJ/Vu70454wQssqyrBXDw8MdPVZBa5NSqTTo+/5XKKV/rLEzEsuyZt3KDJZlnV/rlx5jbMT3/btLpVKgxrFrHWTjxo3IcZyVhJD7T7cMDOecua77UdmZZXFd947TnQszxhxCyAOO41y1detWfStIa5/R0dGk53k3E0IeP7qYJzvl47ZtXyQ7o2y2bV9OCBlmjHnHbZ9hz/M+mM1mpa++oWkAAAD27dvXf+jQoXlr167V523HWb9+vZHNZgdee+21/tWrV+vto2mapmmapmmapmmapmmzxf8H6U3kXY3RPBQAAAAASUVORK5CYII=":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADwCAYAAAA+VemSAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR42u2dfWwc1d3vz5w5c+bs7MzseHd2vX7FWTuOYwfHbwmOX5IQuYECjQol1ImAOGlqEHXT0kTcgCqkKqoePaoe3T5C0SNU9T63t/eKRhGXh1shhLhXFeVBJOrDS+uGNDEtCSHkpSQBJ37Zl5m5f7DmCcF2dta7c87sno/0lQBh+3d+5/ebOXNefkcAHKYZHh5Wjxw5Uj85OVmbTqdrbduudhynyrZt07btMAAgDAAwHMdRAAAqhFCxbRtalgVs2wYAAAAhBKIoAgihbdv2NADgGoRw2nGcTwEAlyGElyGEnwiCcA5C+LEkSR/ruv5hb2/vh7/5zW+u0fYBZ2EE2gZwPqerq6v21KlTq5LJ5CrbtldaltUMAGjKZDLxuUT0GgghQAhdBACcFEXxfQjhMVmW/9zQ0PDnt99++yPaPuPwBKZCZ2dn/NSpU72zs7O32bbd4zhOVyqVCtO2yw0Y48uCILwtiuJ/yLJ89JZbbjny7rvvnqdtV7nBE9gDmpub6y9cuLApmUxusG17fTqdTjiOQ9usgiIIApAk6W8Qwn8nhLwWi8X+78mTJz+kbReH45qBgQElEoncpSjKQYzxBADAKUdhjCcURTkYiUTuGRwcVGj3C4ezIKtXrzZ1XR8hhLwoiuIMYCCBWJIoijOEkBd1XR9pb283afcXhwPWrFljZJP2FQhhGjCQKH4QhDBNCHlF1/WR7u5ug3Y/csqIXbt2IdM07yKEHOJv2oK9mQ9FIpG7du7ciWj3L6dEaWxsrA8GgwckSToDGAj8UpQkSWeDweCBxsbGetr9zSkBtm7dCisrK4cIIS8KgmABBoK8HCQIgkUIeTEWiw2Njo5C2nHA8RkDAwPYMIwRjPE4YCCgy1kY43HDMHatX78e044LDuP09PSomqb9CCF0FjAQvFz/KYTQWVVV93V3d6u044TDGJ2dnbqqqk8hhP4OGAhWroUliuIlVVWf6ujo0GnHDYcyfX19iqZp+0RR5InrM4mieEnTtH29vb18g0i5sX37dhQKhXYhhPiMss+FEDobCoV2ffvb3+ZLUOVANBod4pNTpSeM8bhpmkO044tTJOrr6xOEkBcAA8HGVTwRQl6sq6tL0I43ToHo6+sjmqY9DSHku6bKRBDCGVVVn+7v7ye044+zBKLR6HpJkk4ABoKKy3tJknTCNM2NtOOQ45K2tjZdUZRnBUGgHkRcdCUIgqMoyrNtbW182ckPmKY5hBA6DRgIHi52hBA6Y5rmZrrRyVmQnp4eJRgMPsPfulwLSRAEJxgMHuzu7uZrxywRj8fbJUk6BhgIEi72JUnS8Xg83kErXjnXYRjGY3yGmcutIIRJwzDG6EQtB7S2tuqKohwGDAQDl38VCAQOt7a28gkuL6murm7ly0NchZIkSSeqqqpWeR3HZUk4HL4PQngVMNDxXKUjCOHVcDh8n7fRXEbs378f6rr+NJ9l5iqWBEFwdF1/eu/evbwKSCFZs2YNURTlOcBAJ3OVvhRFOdTV1cW3YRaCRCJhyrL8BmCgY7nKR7Isv9HY2MjrVy+F2traBJ+s4qIlSZJO1NbW8pNN+RCPx9tFUTwHGOhIrvKVKIrn+KYPl0QikV5RFK8ABjqQi0sUxc8ikUhfseO+JIhGo5sghFOAgY7j4poThHAqGo3yih+LYZrmZr4tkotVQQhnIpHIncXMAd/Ck5fLD4IQJnkS30B22MyTl8sXghDO8OF0lkgk0su/ebn8JgjhVDgcLu+JrexSEZ9t5vKlRFH8rGyXmOrq6hJ8nZfL7xJF8VzZlbFNJBIm32HFVSqSJGmibLZddnd3E763mavUJMvymyV/AGL//v2QnyriKlUpinLoySefLN2jiLquP03byVxcxVQ2xkuPcDh8Hz+Mz1XqEgTBKbnKHlVVVa28DA5XuQhCeLVkamy1trbqfMaZq9wkSdIJL6pdisX+A9euXfufyWRysNh/h8NhCdu2I9euXVueyWQO07YlbwzDeAww8DTk4qKlYhePF4r1i+PxePvFixeP2rZNdW1MEAQbY/x/RFH8KJlMXkYIKYIghAEA9ZZlNVmW1WDbNk0TOXkCIQSiKJ4SRfEkAOAjx3EuZzKZaVmWw5Zl1aZSqS2O41Bd1oEQpmKx2G3nz59/l7a/cqanp0dh5a4iQsjLi9na19dnRKPRzYqiHJBl+SifKWdXgiA4siwfVRTlQDQa3dzX12cs1reEkFdo2wzA53cx+epCtWAw+Axtp83JMIxhN7avXLkyruv6o7Isv8aTmb6ySfuaruuPtrS0xN30pWEY22nbP6dgMHjQje3UME1ziJXAF0Vxqq+vL+8nXyKRaAgGgwcQQvzQhcdCCJ0LBoM/TSQSeR8UWLdunSqKIhPnzAVBcJi/n7itrU1n6XJtQsjzhWjXHXfcgQ3D2C7L8lu021TqkmX5LcMwHhwaGsKF6DtZlp+n3aY5IYTOMH2RmqIoz9J20vUKhUIjhW5jLBYbkmX5NdptKzXJsvx6LBYr+BsqGwPU2zenbI6wh2ma61kZOgPw+ZClra3N1TeTG2Kx2EZ+qqogiftmLBYrWnmatra2OGtxaZrmxmK1Ny/6+/sJa7utMMbjXrTdNM0tkiQdp91ev0mSpBORSOQ+AEDRl3kwxkysiFzf9v7+fnaOHqqqytwpo0Ag8C9etf+OO+5Auq6PiaJ4iXa7WZcoild0Xf/hxo0bC/KNmwuBQICpTzsAgJPNmSWz5I0c9fX1iY8++ugY7Q0bN6Lr+s7Jycn/7uXfXLFihXnmzJl/mJmZ2e04TsF+L0IICILwoSAIH0EIPxYE4TxC6ILjOBcBAJ9omjadSqU+qaysTJ0/f/5yS0uLXVtba+u6bkMI7cnJSXTmzBn4l7/8BVZWVoYvXLiAMcbm1atXFQCAKQhCLJPJVNq2HXMcp3ZOmUymYG9HQRBAIBD4bzU1NU9OTExc9LJfdF0fmZyc/Fcv/+bNgBDO1tTUtJ05c+ZvVA0hhLwAGHii3ai6urp2Wj6prKzszQ7hXdmMMb4ky/LvCCEHdV3fU1FRsbmtra1pbGwMed2GsbExtGrVqqaKiorNuq7vIYQclGX5dxhj16MMjPGxWCw2QKs/srFAPSZvFCHkRVo+AQAAkK2NS90RN0oURWvHjh1URwSbNm3CmqY9BSFMzmejJElXMcavKIpyoKKiYktnZ2c9TXvd0NHRUVtRUbElu3vtFUmSPpuvjRDCpKZpT2/YsMGz4fJ87NixA4uiaAEGYvNGmaZJp7709u3bUT5vGS+EMZ6g4pR5qKqqapFl+ShC6DNCyIuqqu6pr6/v+N73vuf5W7VY7NmzBzY0NHSoqjpGCHkBIXQFY/yH6upqZs7EZmOCemyCr8bq+LZt27yPhVAotIt24xcSIeRVzx2yCA888ADavXt3ySTszXj00UfR8PAwU+1lZV/0fMrmknf09fUpCKGztBu+kAgh/+qpQzjMk40J6rE5nxBCZ3t7e/Pa8pvXLOP4+PhjmUymmlZn5MB52gZwmIPZmMhkMtXHjh17LJ+fdZ3AnZ2d+vT09H+h3ejFkGX5Km0bOGyBMWY6Jqanp5/s7Ox0vU/adQJPTEyMWZbFdBX66enpy7Rt4LDFzMwM0zFhWVZ4YmLCdfUOVwnc3d2tzs7O7qXd2JshyzIvscH5EoQQ5mNidnZ2b1dXl+rmZ1wl8IkTJ0YzmUyYdkNvBi+Rw7mRQu6MKxaZTCZ88uTJUTc/k3MCDw4OYj+8fQEAwLIsqhsHOOyRSqWYWtZaiNnZ2b2Dg4M5x2/OCTw+Pv4g4zPPX4AxZn6UwPEWWZaZnreZI5PJVI+Pjz+Y6/+fUwJv3boVTk9PP067cS6cEKFtA4ctMplMBW0bcmV6evrx0dHRwh2zrKysZHLP80KSZfkQ7U7gsAUh5BBgIDZzVa5FDnLK8s8+++z7tDvADY7jNNC2gcMWtm375rAIAABMTk4WJucaGxvrBUFg8iTHQsIYX6HdARy2yOcYJE0JgmA1NjYu/aETDAYP0G5MPurs7Kz1MD44DNPV1VUNGIhJt8rmXv7s3LkTSZLE7KGFxVRRUfFNT6OEwywVFRVbAAMx6VaSJJ0dGRnJf/krEoncRbsR+SoQCPzM60DhsEk2FqjHZD7K5uCCLDqJNTU1tYO28/PFsiw6lQ44zGFZ1ibaNuRL3jnY3d1tsHItRT4SBMFpbm7m38FlzooVK2pZqgvtVqIoznR3dy96idu86Lo+Qtv4pUrTtB/SCBoOO2RjgHosLkXZXJyXBYfQqVRqG23nL5VMJjNI2wYOXUohBlzn4urVq00IYRow8PTJVwih0w0NDb7Yu80pHolEIo4Q+gAwEJP5CkKYbm9vz30vt9+HzxDCq5WVldTqQnPYoqqqahWE8CpgIDbz1WLD6K+QLThN3eh8FQ6H76cZMBz2CIfD9wEGYjNf5VwEfnBwUPHz7HMwGPxn2sHCYZNgMPhPgIEYzUeiKM4MDAzcvHKlnzdvYIz/2NfXx9QdTRx2GBwcJBjjdwADsZqPbrapAwAAgKIoB2kbmo8ghOmqqqoO2kHCYZvs9/C8192wrmxuLg6rV1DcTKqq/pR2cHD8gaqqPwEMxKxb3fTKoObm5nraRuYjhNAH69aty6uyPaf86OvrI5Ik/RUwELtutXz58oWPGIZCoRHaBuajSCTCZ505rohEIr6clTYMY+F7lFi+P2YhybJ8dOvWrYWrH8QpG2RZfhMwEMNuRAj51YINwhj7blgRi8U20w4Ejj/J1p2iHsNulM3Rr9LR0RH326kNWZb/QDsIOP5GluWjgIFYzlWCIDgdHR3xOfu/GHqePn261w/V668nEAj8E20bOP5GURRfxZDjOOD06dO9c//+RQInk8nbaBvnBoTQ+b6+vv9N2w6Ov9m4ceO/IYQ+pm2HG+bNVVmWXwUMDBFyVTAY/AfajuSUBtlYoh7TuSqbqwCA697AjuN00XakGyKRyK+W/ls4HABM0/RVLH0lV7MlWKk/WXKVLMvjtJ3IKS1kWf4jYCC2c9Vc2WQIAACnT59eRduBbkAI8W9fTkFBCP0bbRvcMJezEAAAksmkrxJY1/WXaNvAKS00TfNVTM3lLAQAANu222gblCsIocl77733bdp2cEqLe++9922E0CRtO3LlSzmLMX4dMDCuz0WyLPvqScnxD9nYoh7juSibs1/MQjfTdl6uIITepG0DpzRBCB2lbYMLmgEAAA4PD6uZTCZG25pckWWZD585RcFPsZXJZGLDw8MqPHLkSL1t27TtyZmGhob3aNvAKU3q6up8E1u2bYMjR47Uw8nJSd9cP4IQmu7p6fmQth2c0uTrX//6KYTQLG07cmVycrIeaJq2CzDwUZ6LMMbHaTuNU9pkY4x6rOciTdN2Qdu2fXN7gSAIH9G2gVPa+CnGbNuuho7jVNE2xAW+OjXC8SUXaRuQK47jVEHbtnO/c4UykiT5ZqGd40/8FGO2bZvQtu0wbUNyJZ1OX6ZtA6e0SSaTn9C2IVds2w5DAIBvEpgQYtG2gVPaBAIB/6ypAhCGgiC4v/2bEhBCPzmX40MghL55SQiCYEDbtnlBdA7Hh9i2rUAAgErbkFxxHIfXf+YUFdu2Rdo2uECFEELfvIHT6bSfnMvxIalUirYJOQMhVKBt2755qyWTSUTbBk5pY9u2b66ntW0bQsvyzTc7CAQCvplw4/gTjLFO24ZcsSwLQD+dRJqdnfXN05HjT5LJpG9izLZt4JvhMwAASJLkm11jHH+CEPJVjEEI/ZPDlmXxITSnqNi27ZsYgxACKIr+mdh1HMdXT0eO//BTjImi6K83sOM48aX/Fg5nYfwUYxBCAG3bvkbbkFyxLCu8a9cu36xbc/zFQw89pGYyGd8MoW3bvgYBAL5JYNu2we9//3vflADi+Is33nij1mdX7F6DEMJp2la44dKlSw20beCUJleuXEnQtsENEMJp6DjOp7QNcYNlWb6pYc3xF5lMpom2DW5wHOdTCADw1SH5VCq1grYNnNIknU77LbYuQwihrxLYcRxfXcTG8Q9+iy0I4acQQuibEiIAAOA4TgdtGzilieM47bRtcAOE8CIUBOEcbUPckEqljNbWVl9NNnDYp6WlJZFKpXyzhAQAAIIgnIMQQt+Vav3444/X0raBU1qcO3eul7YNboEQfgwRQr4pZD1HKpXqp20Dp7RIp9ODtG1wC0LoYxgKhXyXwJlMZj1tGzilRSaTGaBtg1tCodCHcN26dR/6aT80AACk0+n29vZ23+xZ5bDNqlWr4ul02m8z0GDdunWnAAAAYIwvAAYua3KjUCj0MG0nckqDbCxRj2k3whifAwB8caD/JG0nuiWZTH6Dtg2c0sCnsfQ+ANkEFkXxfdrWuCWdTt/Z39/PTyZxlkR/f7+STqfvom2HW+ZyFgIAAITwGG2D3GJZlnr8+HHfOZ7DFsePH7/LsizfvQjmchYCAIAsy+/RNigfpqenH6JtA8ff+DWGMMbvAZBN4FtuueVPtA3Kh1QqdVdzczOfjebkRXNzczyVSvlyFLds2bI/f+k/YIwvAQZm19xKVdUf03Ymx59kY4d6DLtVNle/jCzLr9I2LB8hhM4ODg5i2sHA8RcbN27ECKGzgIEYdqtsrgIA/nMZCYii+B+0nZoPmUymenx8fDttOzj+4t13392eyWSqaduRD6Iovj33z18ksCzLR2kbli9TU1NPbt++nd+bxMmJ4eFhNDU19SRtO/Jl3lzt6OiIC4JAfXiQr0Kh0Ahtx3L8QTZWqMdsvuro6Jh/5IAx/itt4/IVQuhMT0+P79bzON7S3d2tIITOAAZiNh9hjD9YsHGEkF/RNnApUlX1J7QDhMM22RihHqv5Kpuj8xMKhXbRNnApghAma2pqeNVKzrzU1NQ0QwhnAAOxmq+yOTo/zc3N9bQNXKpkWX79kUce8df5SE7RGR0dRbIsvw4YiNGlqLm5uWHRhmKMJ2gbuVTpur6PdsBw2CIbE9RjcynK5ubiKIpykLahS5UgCMlYLMbrZnEAAADEYrFeQRDSgIHYXIqyubk4kUjkHtqGFkIIoTPLli2L0Q4eDl2WLVsW8/Os8/XK5ubiDAwMKKIo+vpDf06yLL/R29tLaAcRhw7d3d1EluU3AAOxuFSJojgzMDCQ2zIpIeS3tA0ulAKBwOEHH3yQ79IqM7Zs2YICgcDzgIEYLISyOZkbuq6P0Da4kFJV9Zc/+MEP+Mx0mfDYY49BVVV9vafhRmmatvDy0Y2sXr3ahBD6/qP/eqmq+kv+Ji597rnnHhQMBksqeSGE6fb2dtOVIwghr9A2vNAKBAKH+vv7+TdxidLV1UVKadg8J0LIq8AtpTaMnpMsy683Nja6e5pxmGfZsmVxjPGbgIEYK7R0Xc99+DxHd3e3USqz0TcKIXQ6Fov1eBZdnKISi8V6S2Wp6EaJopjs6urK79I1Qsgh2g0oliCEyVAotGffvn18csunjI6OIl3X95XCJo2FRAg5nLeDIpHIXbQb4IGDXr3lllsaihlonMJTW1vbVAp7m2+mnDZvLMTIyAiSJMmXdYPcCEI4pWnaj4aGhnhtLcYZGBggmqb92O+ninKRJElnl7xyEgwGD9BuiFfCGB83TTP/Jx6naOzfvx+Gw+EHJEnybdEJtwoGgz9dsuMaGxvrBUGwaDfGS8my/HosFttU2BDk5MO+fftgJBK5R5bltwADseGVBEGwEolEQ0GcSAh5sdgGi6JoSZL0gSzLb2GM38EY/522Ewkhb1ZUVNy3Y8cOvgHEY9avX08Mw3gYY/xHwEBCeS1XWydvRiwWGyqWobIsv2aa5p2bN2/+ykbtNWvWxMLh8JZAIHBQkqRztJwpSdIHqqrub25u9mUZUj/R0NDQFAwG/xEh5LsrbwupWCy2uWBOHR0dhRjj8UIbKUnSB7lOHO3cuRNFIpEtsiy/RsupEMI0IeSlUCi0fe3atXrBHFzmrFixIq7r+mOyLL/h58qohRLG+NjevXsLu7xpGEbB62XJsnwiH1ui0ehmjPExmk4WRTFJCPmtruu7W1paagvq7DKgoaGhXVXVJ7JJW1ZzLDfTonWv8mVwcLAoV1FUVFQ8mI89GzZswKqqHmCh8wVBcDDGxxRFeSYUCt3X2dnJL1y7jr1798JEIrFK07RRQshzND+HWBdC6Nzg4GBx9uurqlrwukIQwploNDqUr02maW4URZGp76VsQv+VEPKcqqr7TNPcdNttt5XF/uudO3fiurq6VaFQaLuiKD+TZfn/SZL0Ga2+8JuyOZYzgpv/uaurS/3Tn/50OpPJhAvZ6YIgpAzD+O6VK1f+Rz4/X1tb23DhwoVX0uk00yVlMcYXBUF4TxCEk6IoThBC/ibL8t9Wr1596uWXX/6Utn25smHDBvz+++83z8zMNGQymYZ0Or3Mtu1mx3GaLctKWJbFZ+3zACF0+dZbb132zjvvTBbtj2ia9hQo0tMnGAz+YvXq1Wo+djU1NcUkSSr4RJsXCgaDv962bZtvgn7Tpk04EAiU7D55WvLkqtyOjg5dFMWi3SWMEDoTiUS+mY9ty5cvj0uSdIJ2R7hRIBA4PDw87JvkneP2229HgUCg6PsDykWiKF5qb2/3ZmVD07Si19gNBoPPDgwMuP6Yr62tTRTzAVNIYYzf6urq8m2BgVtvvVUt140WhZaqqk941nG9vb2KF5cjZw/fuz4LaZrmJhZmpxcThHCqpqamybNOKxJVVVUt5XCwoJhCCJ1ds2aNtxfzeXWPkiRJ7+RTQUNVVaYPYei6/iNPO6yIlMKtBzQVCoV2e95p27ZtQ8XYnTWfMMZ/cPt9cPvtt2Ov7HMrSZKO33HHHb777l3M136be2BFGONjDzzwAJ1YME2zaHukbxQh5OU777zTVUOj0eh6FrfmVVRUPEClw4pIOBx+gLZf/SjTNAu35zkfvDipNCdN0/7RrX2KovySdiddL0mS/vrwww+XzNt3jl27dqFSuBjPSxX0xFG+1NfXJ7yaxBAEwcmW+cmZlStXGiwVPPN0ttFjNE37IW3/+kUQwmRtbS0bk5iqqj7tVcMRQheamppcTWplh9LUZ6UFQbBK+UjiypUrS+5CgGJJVdWf0O6vL+jr6yNeTmIEAoH/5dbGUChE/e2QPQpZ0pTihQCFliRJE319fWyt/5umudHLCSPTNF2XvFFV9RmaHVfKw+c5NE17jKaPWZcgCHnFricoivKsV47AGI+73T9M+9Kr2traki8mv3z58hZa/vWDspOqbNLW1qZ7OWFkGMaIWxuzSfzPXnccQmjqkUceKbnZ5/mQJIl6PTMWhRA609LSkt8tC15hmuZmr4bSkiR98LWvfS2vWs6GYTwKIUx61XnZe3vKAlmWX/bKr35Rduh8J+2+yYlgMHjQK8fk8xaeIx6Pd2CM3/HCzkAgwO7QqcAoivIzL3zqJwWDwX+h3S8509XVpUiSdNwLx2CMx7du3Zp3AbC7774b6bo+VqwqiAihvyuK8rPq6uqyqZuladpoMXzpV0mSdKKjo8PbwwpLJR6Pd3g1RK2srFzyrN7atWuVbGXEJR+PQwhdIYT8OhwOb7n77rvL7rqWSCSyeak+LBVBCJOVlZVdtPskLwzD8GRJYUk3uM3DsmXLWlVV3UcI+a0kSWcX+6YXRdHCGE8QQp5XVfWJysrK3u9+97tlMVm1EIlEogMwkDwsKBQK7aHdH0siEAgcLraTIITJ5cuXF22H07e+9S29sbGxRdf1tdXV1UPhcHh9TU1NV3t7e/3Y2FhZJ+t8tLS0VAMGkoe2AoHA86Ojo/6+vra1tVX3YpeWoij/lXZbOZ/zne98xwQMJBBNSZI00drayvaSUa5UVVW1QgivFtNh2c3hTFelLBf27dtHAANJREsQwqmqqqpVtPuhoITD4fuKvT4sy/Lv9uzZ4+8hS+lAPZFoqaKi4n7azi8KmqYV/dSSruslv9/YJ1BPJBrSNO0AbccXjf3790NFUYpaT1gQBCu7jMGhC/Vk8lqBQODw448/XtojwO7ubiLL8hvFdCSE8LN4PF7yBwcYh3pCeSmM8dFbb73VX5s18qWxsdEs9sy0KIqXKisr19JuaxlDPam8EkJooqmpKUbb4Z5SV1eXEEWxqLfUQQivRiKRe2i3tUyhnlheSBTFC8yUxvGaeDzeLorilXwcl6sEQbA0TTswNDTEN1x4C/XkKrayn2r+3CZZKEzT7C32GjEAn9eWjsfjHbTbW0ZQT7BiCkI4ZZrmAG0nM0E0Gt3kRWVLQRAsRVGeTSQSZXMyiCLUk6xYghAmo9EoX+m4HtM0N3tVnhZCmAwEAr+ora1tp93uEoZ6ohVDgiAkDcPwx8F8r/Eyiecky/JbwWDwicbGxtZitGlsbAw1NDSU44OCerIVWhBCnrw3IzucngIUOghjfJYQckhV1X3hcPjOtra2pu9///s5nef9xje+Ea6pqVkVDoe3qKq6LxAI/BJj/CZCaK4t5Qb1hCukIIRTLA6bBdoGzEckEun79NNPX7Isi/ppDlEUAYTwE0EQPnUcZxIhZAMAgG3b0LIsAiE0AABmKpW6WaIz6esiUjIPLQjhZDgcvvuTTz75d9q2+IbsElNR14k9VrlB298FkSiKF8p+qShf6urqEiV0bWW5QdvfSxZCaKJsN2kUikQiYRZ777RHKjdo+3tJwhi/2djYWF7bI4tFd3c3URTlOcBAxy5B5QZtf+ctRVEOt7e3l8fBBK/Yv38/1HX9aRYv7M5R5QZtf+clTdMO7N27t7SPBNIkHA5/04utl0VQuUHb364EIZwKh8OlWUmDNaqrq1t9OLlVbtD2d86SJOlEydWwYp22tja92NU9Cqxyg7a/c1IgEHi+ra2N+n6DssUwjMe83n6Zp8oN2v6+2ZA5aRjGnqVcy8MpEPF4vF2SpGOAgcBYROUGbX8vNmQ+zo+WMkZ3d0VCvGQAAAJjSURBVLcSDAafYXiWutyg7e95FQwGD3Z2dvIlIlYxTXMIIXQaMBAsN6jcoO3vLwkhdMY0TeYOI3DmobW1VVcU5VnG3sblBm1/OwB8frG2oii/KJlrTsqJaDS6nqHlpnKDtr8dSZImTNNc8tWzHIr09/cTTdN+zMBMdblBzdcQwhlVVX/S399PaDuBUyDq6+sbCCEvAJ7AXkHFz4SQ39bV1fETRKWKaZqbMMZ/BDyBi42n/sUYj/NJqjLhoYceQqFQaAQhdAbwBC4WnvgVIXQ2FArtHh4e5nW/y43+/n5F07QfIYT+DngCF5qi+lMUxUuapj2xdu1avqZb7nR1damapu0vciKXG8VM3Kc6Ojp02g3kMEZPT4+qadoPCz20FkWx7BIYQljwobKqqvu6urpU2m3jMM6GDRuwYRgPF2qyC2N8lnabvCbb5oJMThmGsWv9+vU5lfflcL5EZWXlJkLIC4IgWCDPIAwEAr+i3Q6vCQQCv87XX4IgWISQF2Ox2NDo6Cg/LcRZOk1NTbXBYPAnkiS52mctCEK6qqqq7G5mqKys7HD70JMk6WwwGDzQ2NhYT9t+Tomye/duaJrmZkLIc6IoLrq7SxAEyzCMUdo208IwjLGb7UcXRXGGEHIoEoncNTIywpeCON6xZs0aPRQKPUgIeUmSpC+SGSE0I8vyS7FYrI+2jbSJRqMbCSGviKKYvN4/hJBXdF1/uKenhx8yWALldt1HUbn//vtjs7OzsKmp6eLPf/5zm7Y9LDE2Nobee++9mK7rGUmSPjl8+DD3D4fD4XA4HA6Hw+FwOBwOh1MO/H++L1JMVybV/QAAAABJRU5ErkJggg==",w=h?M:s,G=h?V:Y,O=h?E:q,L=h?v:X;return(0,n.useLayoutEffect)((()=>{const A=document.documentElement.getAttribute("data-theme");t(A)}),[]),(0,n.useEffect)((()=>{e.colorMode!==A&&t(e.colorMode)}),[e.colorMode]),n.createElement("div",{className:I},n.createElement("div",{className:C},n.createElement("div",{className:c},n.createElement("h1",{className:b},"Blazingly super fast RN notification library"),n.createElement("h2",{className:l},"Better than your delivery man!"),n.createElement("div",{className:u})),n.createElement("div",{className:Q},n.createElement("a",{href:"docs/intro",className:a},"OK, let's go"),n.createElement("a",{href:"https://github.com/TheWidlarzGroup/react-native-notificated",className:a},n.createElement("img",{src:k,alt:"github icon",className:Z}),"Github"))),n.createElement("div",{className:m},n.createElement("div",{className:w}),n.createElement("div",{className:O}),n.createElement("div",{className:z}),n.createElement("div",{className:i}),n.createElement("div",{className:L}),n.createElement("div",{className:G})))}function w(){const{siteConfig:A}=(0,a.Z)();return n.createElement(h.Z,{title:`Hello from ${A.title}`,description:"Description will go into a meta tag in "},n.createElement(k,null))}}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.351cd309.js b/assets/js/1f391b9e.351cd309.js new file mode 100644 index 00000000..1d842a22 --- /dev/null +++ b/assets/js/1f391b9e.351cd309.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[85],{4247:function(e,t,a){a.r(t),a.d(t,{default:function(){return d}});var n=a(7294),l=a(4334),c=a(1944),r=a(5281),m=a(3285),i=a(9588),s=a(9407),o="mdxPageWrapper_j9I6";function d(e){const{content:t}=e,{metadata:{title:a,description:d,frontMatter:u}}=t,{wrapperClassName:p,hide_table_of_contents:_}=u;return n.createElement(c.FG,{className:(0,l.Z)(p??r.k.wrapper.mdxPages,r.k.page.mdxPage)},n.createElement(c.d,{title:a,description:d}),n.createElement(m.Z,null,n.createElement("main",{className:"container container--fluid margin-vert--lg"},n.createElement("div",{className:(0,l.Z)("row",o)},n.createElement("div",{className:(0,l.Z)("col",!_&&"col--8")},n.createElement("article",null,n.createElement(i.Z,null,n.createElement(t,null)))),!_&&t.toc.length>0&&n.createElement("div",{className:"col col--2"},n.createElement(s.Z,{toc:t.toc,minHeadingLevel:u.toc_min_heading_level,maxHeadingLevel:u.toc_max_heading_level}))))))}}}]); \ No newline at end of file diff --git a/assets/js/222e0563.830ebcb4.js b/assets/js/222e0563.830ebcb4.js new file mode 100644 index 00000000..b2486fbe --- /dev/null +++ b/assets/js/222e0563.830ebcb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[225],{3905:function(t,e,n){n.d(e,{Zo:function(){return f},kt:function(){return h}});var i=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function a(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var l=i.createContext({}),s=function(t){var e=i.useContext(l),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},f=function(t){var e=s(t.components);return i.createElement(l.Provider,{value:e},t.children)},p="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},u=i.forwardRef((function(t,e){var n=t.components,o=t.mdxType,r=t.originalType,l=t.parentName,f=c(t,["components","mdxType","originalType","parentName"]),p=s(n),u=o,h=p["".concat(l,".").concat(u)]||p[u]||d[u]||r;return n?i.createElement(h,a(a({ref:e},f),{},{components:n})):i.createElement(h,a({ref:e},f))}));function h(t,e){var n=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var r=n.length,a=new Array(r);a[0]=u;var c={};for(var l in e)hasOwnProperty.call(e,l)&&(c[l]=e[l]);c.originalType=t,c[p]="string"==typeof t?t:o,a[1]=c;for(var s=2;s {\n const { notify } = useNotifications()\n\n return (\n \n \n \n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }>\n Emit error\n \n \n )\n}\n")),(0,o.kt)("p",null,"\"Now, all notifications in the application will be 400 pixels wide because we've set the ",(0,o.kt)("inlineCode",{parentName:"p"},"notificationWidth"),' value to 400."'),(0,o.kt)("br",null),(0,o.kt)("br",null),(0,o.kt)("h3",{id:"set-the-position-locally-inside-config-object-in-a-single-notification-instance"},"Set the position locally inside config object in a single notification instance:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView, Text } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { styles } from './styles'\n\nconst { NotificationsProvider, useNotifications } = createNotifications({\n notificationWidth: 400,\n})\n\nexport const ExampleNotification = () => {\n const { notify } = useNotifications()\n\n return (\n \n \n \n notify('error', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Error',\n },\n config: {\n notificationWidth: 500,\n },\n })\n }>\n Emit error\n \n \n )\n}\n")),(0,o.kt)("p",null,"Now, all notifications in the app will be displayed with a width of 400 pixels, except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"error")," notification mentioned in the previous example.",(0,o.kt)("br",null),"\nThat ",(0,o.kt)("inlineCode",{parentName:"p"},"error")," notification will have a width of 500 pixels because local configuration overrides the global setting.",(0,o.kt)("br",null),"\nOf course, if you prefer, you can set the width locally without adjusting the global setting.",(0,o.kt)("br",null),"\n(You can read more about props overwriting in the ",(0,o.kt)("a",{parentName:"p",href:"../comprehensive-configuration/order-of-settings-overwriting"},"ORDER OF SETTINGS OVERWRITING")," section)"),(0,o.kt)("br",null),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"-width-config-priority"},"\ud83d\udd26 Width config priority"),(0,o.kt)("p",null,"For each subsequent notification, the library looks for a notification width in the following order:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"First, it looks for a config defined in ",(0,o.kt)("inlineCode",{parentName:"li"},"notify")," payload"),(0,o.kt)("li",{parentName:"ol"},"Secondly, it looks for a global config from ",(0,o.kt)("inlineCode",{parentName:"li"},"createNotification")),(0,o.kt)("li",{parentName:"ol"},"At last, when no config is found, it uses the default behavior, which is 343 pixels")),(0,o.kt)("br",null))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2dbe75c6.2c6401e1.js b/assets/js/2dbe75c6.2c6401e1.js new file mode 100644 index 00000000..822c5e44 --- /dev/null +++ b/assets/js/2dbe75c6.2c6401e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[720],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return u}});var a=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function o(t){for(var e=1;e=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var s=a.createContext({}),d=function(t){var e=a.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):o(o({},e),t)),n},p=function(t){var e=d(t.components);return a.createElement(s.Provider,{value:e},t.children)},c="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},f=a.forwardRef((function(t,e){var n=t.components,i=t.mdxType,r=t.originalType,s=t.parentName,p=l(t,["components","mdxType","originalType","parentName"]),c=d(n),f=i,u=c["".concat(s,".").concat(f)]||c[f]||m[f]||r;return n?a.createElement(u,o(o({ref:e},p),{},{components:n})):a.createElement(u,o({ref:e},p))}));function u(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var r=n.length,o=new Array(r);o[0]=f;var l={};for(var s in e)hasOwnProperty.call(e,s)&&(l[s]=e[s]);l.originalType=t,l[c]="string"==typeof t?t:i,o[1]=l;for(var d=2;dglobalConfig",id:"-globalconfig",level:3},{value:"\u2139\ufe0f successConfig / errorConfig / warningConfig / infoConfig",id:"\u2139\ufe0f-successconfig--errorconfig--warningconfig--infoconfig",level:3}],p={toc:d};function c(t){let{components:e,...r}=t;return(0,i.kt)("wrapper",(0,a.Z)({},p,r,{components:e,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"-global-styles-settings"},"\ud83c\udf0d Global Styles Settings"),(0,i.kt)("h4",{id:""}),(0,i.kt)("h2",{id:"-default-styles-settings"},"\ud83c\udfa8 Default styles settings"),(0,i.kt)("p",null,"In the default styles settings, we can pass the config that affects all the notifications used in the app.\nWe divide them into:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Name"),(0,i.kt)("th",{parentName:"tr",align:null},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Default"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"darkMode"),(0,i.kt)("td",{parentName:"tr",align:null},"Boolean"),(0,i.kt)("td",{parentName:"tr",align:null},"false"),(0,i.kt)("td",{parentName:"tr",align:null},"If set to ",(0,i.kt)("inlineCode",{parentName:"td"},"true"),", it enables the dark mode for the notification layout")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"globalConfig"),(0,i.kt)("td",{parentName:"tr",align:null},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"Inside this object, you can pass the configuration for all notifications used in the app (or the parts wrapped with the ",(0,i.kt)("inlineCode",{parentName:"td"},"NotificationProvider"),")")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"successConfig"),(0,i.kt)("td",{parentName:"tr",align:null},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"Inside this object, you can pass the configuration for all success type notifications used in the app (or parts wrapped with the ",(0,i.kt)("inlineCode",{parentName:"td"},"NotificationProvider"),"). Here, all params set for the success notifications overwrite the same params set in ",(0,i.kt)("inlineCode",{parentName:"td"},"globalConfig"))),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"errorConfig"),(0,i.kt)("td",{parentName:"tr",align:null},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"Inside this object, you can pass the configuration for all error type notifications used in the app (or parts wrapped with the ",(0,i.kt)("inlineCode",{parentName:"td"},"NotificationProvider"),"). Here, all params set for the error notifications here overwrite the same params set in ",(0,i.kt)("inlineCode",{parentName:"td"},"globalConfig"))),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"warningConfig"),(0,i.kt)("td",{parentName:"tr",align:null},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"Inside this object, you can pass the configuration for all warning type notifications used in the app (or parts wrapped with the ",(0,i.kt)("inlineCode",{parentName:"td"},"NotificationProvider"),"). Here, all params set for the warning notifications here overwrite the same params set in ",(0,i.kt)("inlineCode",{parentName:"td"},"globalConfig"))),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"infoConfig"),(0,i.kt)("td",{parentName:"tr",align:null},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"Inside this object, you can pass the configuration for all info type notifications used in the app (or parts wrapped with the ",(0,i.kt)("inlineCode",{parentName:"td"},"NotificationProvider"),"). Here, all params set for the info notifications here overwrites the same params set in ",(0,i.kt)("inlineCode",{parentName:"td"},"globalConfig"))))),(0,i.kt)("h1",{id:"-1"}),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsx"},"const { useNotifications, NotificationsProvider } = createNotifications({\n defaultStylesSettings: {\n darkMode: true,\n globalConfig: {},\n successConfig: {},\n errorConfig: {},\n warningConfig: {},\n infoConfig: {},\n },\n})\n")),(0,i.kt)("h1",{id:"-2"}),(0,i.kt)("p",null,"Like we said above - in the config descriptions, ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig")," even if is set can be overwritten by the config of the different notifications types (",(0,i.kt)("inlineCode",{parentName:"p"},"successConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"errorConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"warningConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"infoConfig"),").\nYou can find examples explaining it below, but first, let's find out what exactly, can we set in config objects."),(0,i.kt)("h1",{id:"-3"}),(0,i.kt)("br",null),(0,i.kt)("h2",{id:"\ufe0f-style-config-object"},"\u2699\ufe0f Style config object"),(0,i.kt)("p",null,"All five configs:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"globalConfig")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"successConfig")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"errorConfig")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"warningConfig")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"infoConfig"))),(0,i.kt)("p",null,"are the objects with the same properties."),(0,i.kt)("h1",{id:"-4"}),(0,i.kt)("p",null,"We can set there:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Name"),(0,i.kt)("th",{parentName:"tr",align:null},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Default"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"titleSize"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"16")),(0,i.kt)("td",{parentName:"tr",align:null},"Set font size for the notification")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"titleFamily"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"ios: 'San Francisco', android: 'Roboto'")),(0,i.kt)("td",{parentName:"tr",align:null},"Set font family for the notification title")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"titleWeight"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"600")),(0,i.kt)("td",{parentName:"tr",align:null},"Set font weight for the notification title")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"titleColor"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'#505050'")," (darkMode - false) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#FAFAFA'")," (darkMode - true)"),(0,i.kt)("td",{parentName:"tr",align:null},"Set font color for the notification title")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"descriptionSize"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"14")),(0,i.kt)("td",{parentName:"tr",align:null},"Set font size for the notification description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"descriptionFamily"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"ios: 'San Francisco', android: 'Roboto'")),(0,i.kt)("td",{parentName:"tr",align:null},"Set font family for the notification description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"descriptionWeight"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"400")),(0,i.kt)("td",{parentName:"tr",align:null},"Set font weight for the notification description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"descriptionColor"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'#505050'")," (darkMode - false) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#FAFAFA'")," (darkMode - true)"),(0,i.kt)("td",{parentName:"tr",align:null},"Set font color for the notification description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"bgColor"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'#FFFFFF'")," (darkMode - false) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#2D2D2D'")," (darkMode - true)"),(0,i.kt)("td",{parentName:"tr",align:null},"Set background color for the notification")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"borderType"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'border'")," / ",(0,i.kt)("inlineCode",{parentName:"td"},"'accent'")," / ",(0,i.kt)("inlineCode",{parentName:"td"},"'no-border'")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'border'")),(0,i.kt)("td",{parentName:"tr",align:null},"Set type of border for the notification (",(0,i.kt)("a",{parentName:"td",href:"#-border-types-examples"},"EXAMPLES"),")")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"accentColor"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'#00EA33'")," (success type) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#FC6060'")," (error type) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#8CACFF'")," (warning type) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#FFD37D'")," (info type)"),(0,i.kt)("td",{parentName:"tr",align:null},"Set accent color for the notification. The color of the border or the left side accent line")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"borderRadius"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"14")),(0,i.kt)("td",{parentName:"tr",align:null},"Set border radius for the notification container")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"borderWidth"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"1")),(0,i.kt)("td",{parentName:"tr",align:null},"Set border width for the notification container")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"multiline"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"1")),(0,i.kt)("td",{parentName:"tr",align:null},"Set number of visible lines for the notification description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"defaultIconType"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'color'")," / ",(0,i.kt)("inlineCode",{parentName:"td"},"'monochromatic'")," / ",(0,i.kt)("inlineCode",{parentName:"td"},"'no-icon'")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'color'")),(0,i.kt)("td",{parentName:"tr",align:null},"This props works only with default icons. If you set your own icon it has no effect. (",(0,i.kt)("a",{parentName:"td",href:"#%EF%B8%8F-default-icon-type-examples"},"EXAMPLES"),")")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"leftIconSource"),(0,i.kt)("td",{parentName:"tr",align:null},"ImageSourcePropType / JSX.Element"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"Set custom left icon for the notification (in png) or as custom component. For example. ",(0,i.kt)("inlineCode",{parentName:"td"},"require(../assets/icon.png)")," / ",(0,i.kt)("inlineCode",{parentName:"td"},''))))),(0,i.kt)("h2",{id:"-5"}),(0,i.kt)("h3",{id:"-border-types-examples"},"\ud83d\udd33 Border types examples"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"'border'"))),(0,i.kt)("h1",{id:"-6"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Border",src:n(1727).Z,width:"756",height:"222"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"'accent'"))),(0,i.kt)("h1",{id:"-7"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Accent",src:n(6624).Z,width:"748",height:"210"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"'no-border'"))),(0,i.kt)("h1",{id:"-8"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"No-border",src:n(2525).Z,width:"752",height:"210"})),(0,i.kt)("h2",{id:"-9"}),(0,i.kt)("h3",{id:"\ufe0f-default-icon-type-examples"},"\ud83c\udff5\ufe0f Default icon type examples"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"'color'"))),(0,i.kt)("h1",{id:"-10"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Color",src:n(1727).Z,width:"756",height:"222"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"'monochromatic'"))),(0,i.kt)("h1",{id:"-11"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Monochromatic",src:n(8566).Z,width:"748",height:"218"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"'monochromatic'")," (dark mode)")),(0,i.kt)("h1",{id:"-12"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Monochromatic-darkMode",src:n(4117).Z,width:"750",height:"206"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"'no-icon'"))),(0,i.kt)("h1",{id:"-13"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"No-border",src:n(1188).Z,width:"752",height:"212"})),(0,i.kt)("h2",{id:"-14"}),(0,i.kt)("h2",{id:"\ufe0f-global-styles-setting-examples"},"\ud83c\udfde\ufe0f Global styles setting examples"),(0,i.kt)("p",null,"Let's start with the basic notification settings with some global style."),(0,i.kt)("br",null),(0,i.kt)("h3",{id:"-globalconfig"},"\ud83c\udf10 ",(0,i.kt)("inlineCode",{parentName:"h3"},"globalConfig")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView, Text } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { styles } from './styles'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n defaultStylesSettings: {\n globalConfig: {\n titleSize: 20,\n titleColor: '#4B0082',\n descriptionSize: 12,\n descriptionColor: '#4B0082',\n bgColor: '#FFFFF0',\n borderType: 'accent',\n borderRadius: 25,\n accentColor: '#B0E0E6',\n borderWidth: 3,\n multiline: 5,\n leftIconSource: require('../assets/custom-icon.png'),\n },\n },\n})\n\nexport const GlobalConfigExamples = () => {\n const { notify } = useNotifications()\n\n return (\n \n \n \n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }>\n Emit error\n \n \n )\n}\n")),(0,i.kt)("p",null,"The effect is visible below:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"No-border",src:n(6534).Z,width:"756",height:"214"})),(0,i.kt)("p",null,"In ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig")," above, we have overwritten all the default values."),(0,i.kt)("h1",{id:"-15"}),(0,i.kt)("p",null,"That means that doesn't matter now if we use ",(0,i.kt)("inlineCode",{parentName:"p"},"error")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"info")," notification. All will now look the same.\nThat is what ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig")," does. It overwrites properties for all notifications.\nIf we set there only ",(0,i.kt)("inlineCode",{parentName:"p"},"borderRadius")," property for some value, then only ",(0,i.kt)("inlineCode",{parentName:"p"},"borderRadius")," would be set globally. Default values of all other properties would stay untouched:"),(0,i.kt)("h1",{id:"-16"}),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView, Text } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { styles } from './styles'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n defaultStylesSettings: {\n globalConfig: {\n borderRadius: 50,\n },\n },\n})\n\nexport const GlobalConfigExamples = () => {\n const { notify } = useNotifications()\n\n return (\n \n \n \n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }>\n Emit error\n \n \n notify('success', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Success',\n },\n })\n }>\n Emit success\n \n \n )\n}\n")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"No-border",src:n(148).Z,width:"744",height:"220"}),"\n",(0,i.kt)("img",{alt:"No-border",src:n(6230).Z,width:"744",height:"214"})),(0,i.kt)("h1",{id:"-17"}),(0,i.kt)("p",null,"Both notifications - error and success - have their default settings. Only ",(0,i.kt)("inlineCode",{parentName:"p"},"borderRadius")," has been changed for both of them because we did it in ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig"),"."),(0,i.kt)("h2",{id:"-18"}),(0,i.kt)("h3",{id:"\u2139\ufe0f-successconfig--errorconfig--warningconfig--infoconfig"},"\u2139\ufe0f ",(0,i.kt)("inlineCode",{parentName:"h3"},"successConfig")," / ",(0,i.kt)("inlineCode",{parentName:"h3"},"errorConfig")," / ",(0,i.kt)("inlineCode",{parentName:"h3"},"warningConfig")," / ",(0,i.kt)("inlineCode",{parentName:"h3"},"infoConfig")),(0,i.kt)("p",null,"Those settings work the same as ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig")," but for different notification types. ",(0,i.kt)("br",null),"\nIn other words, we can set configuration for ALL errors, ALL info, etc."),(0,i.kt)("p",null,"In addition ",(0,i.kt)("inlineCode",{parentName:"p"},"successConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"errorConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"warningConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"infoConfig")," are overwriting properties set in ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig"),".",(0,i.kt)("br",null),"\nSo if we set ",(0,i.kt)("inlineCode",{parentName:"p"},"borderRadius")," in ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig")," for ",(0,i.kt)("inlineCode",{parentName:"p"},"50")," as we did in the example above, and we will overwrite it in the ",(0,i.kt)("inlineCode",{parentName:"p"},"successConfig")," for ",(0,i.kt)("inlineCode",{parentName:"p"},"10"),", then ",(0,i.kt)("inlineCode",{parentName:"p"},"borderRadius")," for ALL the SUCCESS notifications will be set for ",(0,i.kt)("inlineCode",{parentName:"p"},"10"),", but for ALL OTHER it will be still ",(0,i.kt)("inlineCode",{parentName:"p"},"50"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView, Text } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { styles } from './styles'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n defaultStylesSettings: {\n globalConfig: {\n borderRadius: 50,\n },\n successConfig: {\n borderRadius: 10,\n },\n },\n})\n\nexport const GlobalConfigExamples = () => {\n const { notify } = useNotifications()\n\n return (\n \n \n \n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }>\n Emit error\n \n \n notify('success', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Success',\n },\n })\n }>\n Emit success\n \n \n )\n}\n")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"No-border",src:n(148).Z,width:"744",height:"220"}),"\n",(0,i.kt)("img",{alt:"No-border",src:n(6674).Z,width:"750",height:"222"})),(0,i.kt)("h2",{id:"-19"}),(0,i.kt)("p",null,"So in conclusion -"),(0,i.kt)("h1",{id:"-20"}),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"successConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"errorConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"warningConfig")," / ",(0,i.kt)("inlineCode",{parentName:"p"},"infoConfig")," overwrites ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig"),", and DEFAULT SETTINGS"),(0,i.kt)("h1",{id:"-21"}),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig")," overwrites DEFAULT SETTINGS"),(0,i.kt)("h2",{id:"-22"}))}c.isMDXComponent=!0},6624:function(t,e,n){e.Z=n.p+"assets/images/accent-1a227aec8f5965ca3a81c8313fecdac1.png"},1727:function(t,e,n){e.Z=n.p+"assets/images/border-d40e328e8fc7581aa6c0499b55bd68e9.png"},6534:function(t,e,n){e.Z=n.p+"assets/images/global-example-0368ec3206e0e42200a8cbad5a547946.png"},6674:function(t,e,n){e.Z=n.p+"assets/images/less-rounded-success-4c3fcb35906613964e00ec32edb9672b.png"},4117:function(t,e,n){e.Z=n.p+"assets/images/monochromatic-darkMode-4ac872b5411247049cb53f50e4c5e912.png"},8566:function(t,e,n){e.Z=n.p+"assets/images/monochromatic-81b41ed5594598a9a47035f17f113c2e.png"},2525:function(t,e,n){e.Z=n.p+"assets/images/no-border-cc0d825b15445afb750531743ca05dae.png"},1188:function(t,e,n){e.Z=n.p+"assets/images/no-icon-16a8557cdbaf3984ccf20ad43450dc8e.png"},148:function(t,e,n){e.Z=n.p+"assets/images/rounded-error-de255e75a397183cc85d9ee5432b18f6.png"},6230:function(t,e,n){e.Z=n.p+"assets/images/rounded-success-0cfb4740a8a97a66975d9089bf51c0a4.png"}}]); \ No newline at end of file diff --git a/assets/js/393be207.fb391696.js b/assets/js/393be207.fb391696.js new file mode 100644 index 00000000..339d3480 --- /dev/null +++ b/assets/js/393be207.fb391696.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[414],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return d}});var r=n(7294);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 c(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 p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},f="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),f=u(n),s=o,d=f["".concat(p,".").concat(s)]||f[s]||m[s]||a;return n?r.createElement(d,c(c({ref:t},l),{},{components:n})):r.createElement(d,c({ref:t},l))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[f]="string"==typeof e?e:o,c[1]=i;for(var u=2;u=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=i.createContext({}),c=function(e){var n=i.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},p=function(e){var n=c(e.components);return i.createElement(l.Provider,{value:n},e.children)},f="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return i.createElement(i.Fragment,{},n)}},d=i.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),f=c(t),d=o,m=f["".concat(l,".").concat(d)]||f[d]||u[d]||r;return t?i.createElement(m,a(a({ref:n},p),{},{components:t})):i.createElement(m,a({ref:n},p))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,a=new Array(r);a[0]=d;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[f]="string"==typeof e?e:o,a[1]=s;for(var c=2;c {\n const { notify } = useNotifications()\n\n return (\n \n \n \n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n },\n })\n }\n />\n \n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }\n />\n \n notify('warning', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Warning',\n },\n })\n }\n />\n \n notify('info', {\n params: {\n description: 'This is where the toast text goes.',\n title: 'Info',\n },\n })\n }\n />\n \n )\n}\n\n\n")),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"visualization-of-examples"},"Visualization of examples"),(0,o.kt)("p",null,"Let's see the notifications we declared above:"),(0,o.kt)("br",null),(0,o.kt)("h3",{id:"success-notification"},"Success notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Success",src:t(9093).Z,width:"752",height:"210"})),(0,o.kt)("h3",{id:"error-notification"},"Error notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Error",src:t(8140).Z,width:"746",height:"216"})),(0,o.kt)("h3",{id:"warning-notification"},"Warning notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Warning",src:t(9786).Z,width:"742",height:"224"})),(0,o.kt)("h3",{id:"info-notification"},"Info notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Info",src:t(890).Z,width:"748",height:"218"})),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"conclusion"},"Conclusion"),(0,o.kt)("p",null,"All notifications of the same type will have the same style properties."),(0,o.kt)("p",null,"Importantly, the ",(0,o.kt)("inlineCode",{parentName:"p"},"successConfig"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"errorConfig"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"warningConfig")," and the ",(0,o.kt)("inlineCode",{parentName:"p"},"infoConfig")," overwrites the ",(0,o.kt)("inlineCode",{parentName:"p"},"globalConfig")," setting, but only for its own types.",(0,o.kt)("br",null),"\nTo find out more, go back to the ",(0,o.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/default-variants-config/global-config"},"GLOBAL CONFIG"),(0,o.kt)("br",null)," and the ",(0,o.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting"},"ORDER OF SETTINGS OVERWRITING")," sections."))}f.isMDXComponent=!0},8140:function(e,n,t){n.Z=t.p+"assets/images/error-global-type-b2f0a5a2a67e3ab2b40ca53f171855f2.png"},890:function(e,n,t){n.Z=t.p+"assets/images/info-global-type-3e4192bdb309c1d53ee458a93c589b40.png"},9093:function(e,n,t){n.Z=t.p+"assets/images/success-global-type-1bea57007ceac25fe4e39601dc68cb26.png"},9786:function(e,n,t){n.Z=t.p+"assets/images/warning-global-type-21095ea82c7e9646e151a7e28edb1787.png"}}]); \ No newline at end of file diff --git a/assets/js/430.84e2b318.js b/assets/js/430.84e2b318.js new file mode 100644 index 00000000..8cc045f6 --- /dev/null +++ b/assets/js/430.84e2b318.js @@ -0,0 +1 @@ +(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[430],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return f}});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function c(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=o.createContext({}),s=function(e){var t=o.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},u=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(n),p=r,f=m["".concat(i,".").concat(p)]||m[p]||d[p]||a;return n?o.createElement(f,c(c({ref:t},u),{},{components:n})):o.createElement(f,c({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,c=new Array(a);c[0]=p;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[m]="string"==typeof e?e:r,c[1]=l;for(var s=2;s["'])(?.*?)\1/,g=/\{(?<range>[\d,-]+)\}/,v={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function y(e,t){const n=e.map((e=>{const{start:n,end:o}=v[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${o})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function b(e,t){let n=e.replace(/\n$/,"");const{language:o,magicComments:r,metastring:a}=t;if(a&&g.test(a)){const e=a.match(g).groups.range;if(0===r.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${a}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=r[0].className,o=f()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(o),code:n}}if(void 0===o)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return y(["js","jsBlock"],t);case"jsx":case"tsx":return y(["js","jsBlock","jsx"],t);case"html":return y(["js","jsBlock","html"],t);case"python":case"py":case"bash":return y(["bash"],t);case"markdown":case"md":return y(["html","jsx","bash"],t);default:return y(Object.keys(v),t)}}(o,r),l=n.split("\n"),i=Object.fromEntries(r.map((e=>[e.className,{start:0,range:""}]))),s=Object.fromEntries(r.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),u=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<l.length;){const e=l[p].match(c);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));s[t]?i[s[t]].range+=`${p},`:u[t]?i[u[t]].start=p:m[t]&&(i[m[t]].range+=`${i[m[t]].start}-${p-1},`),l.splice(p,1)}n=l.join("\n");const d={};return Object.entries(i).forEach((e=>{let[t,{range:n}]=e;f()(n).forEach((e=>{d[e]??=[],d[e].push(t)}))})),{lineClassNames:d,code:n}}var E="codeBlockContainer_Ckt0";function k(e){let{as:t,...n}=e;const r=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[o,r]=e;const a=t[o];a&&"string"==typeof r&&(n[a]=r)})),n}(m());return o.createElement(t,(0,a.Z)({},n,{style:r,className:(0,i.Z)(n.className,E,d.k.common.codeBlock)}))}var N={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function C(e){let{children:t,className:n}=e;return o.createElement(k,{as:"pre",tabIndex:0,className:(0,i.Z)(N.codeBlockStandalone,"thin-scrollbar",n)},o.createElement("code",{className:N.codeBlockLines},t))}var L=n(902);const w={attributes:!0,characterData:!0,childList:!0,subtree:!0};function B(e,t){const[n,r]=(0,o.useState)(),a=(0,o.useCallback)((()=>{r(e.current?.closest("[role=tabpanel][hidden]"))}),[e,r]);(0,o.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=w);const r=(0,L.zX)(t),a=(0,L.Ql)(n);(0,o.useEffect)((()=>{const t=new MutationObserver(r);return e&&t.observe(e,a),()=>t.disconnect()}),[e,r,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var x={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},T={Prism:n(1205).Z,theme:x};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 Z(){return Z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},Z.apply(this,arguments)}var j=/\r\n|\r|\n/,_=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},H=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},S=function(e,t){var n=e.plain,o=Object.create(null),r=e.styles.reduce((function(e,n){var o=n.languages,r=n.style;return o&&!o.includes(t)||n.types.forEach((function(t){var n=Z({},e[t],r);e[t]=n})),e}),o);return r.root=n,r.plain=Z({},n,{backgroundColor:null}),r};function A(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}var P=function(e){function t(){for(var t=this,n=[],o=arguments.length;o--;)n[o]=arguments[o];e.apply(this,n),O(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?S(e.theme,e.language):void 0;return t.themeDict=n})),O(this,"getLineProps",(function(e){var n=e.key,o=e.className,r=e.style,a=Z({},A(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),c=t.getThemeDict(t.props);return void 0!==c&&(a.style=c.plain),void 0!==r&&(a.style=void 0!==a.style?Z({},a.style,r):r),void 0!==n&&(a.key=n),o&&(a.className+=" "+o),a})),O(this,"getStyleForToken",(function(e){var n=e.types,o=e.empty,r=n.length,a=t.getThemeDict(t.props);if(void 0!==a){if(1===r&&"plain"===n[0])return o?{display:"inline-block"}:void 0;if(1===r&&!o)return a[n[0]];var c=o?{display:"inline-block"}:{},l=n.map((function(e){return a[e]}));return Object.assign.apply(Object,[c].concat(l))}})),O(this,"getTokenProps",(function(e){var n=e.key,o=e.className,r=e.style,a=e.token,c=Z({},A(e,["key","className","style","token"]),{className:"token "+a.types.join(" "),children:a.content,style:t.getStyleForToken(a),key:void 0});return void 0!==r&&(c.style=void 0!==c.style?Z({},c.style,r):r),void 0!==n&&(c.key=n),o&&(c.className+=" "+o),c})),O(this,"tokenize",(function(e,t,n,o){var r={code:t,grammar:n,language:o,tokens:[]};e.hooks.run("before-tokenize",r);var a=r.tokens=e.tokenize(r.code,r.grammar,r.language);return e.hooks.run("after-tokenize",r),a}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,o=e.code,r=e.children,a=this.getThemeDict(this.props),c=t.languages[n];return r({tokens:function(e){for(var t=[[]],n=[e],o=[0],r=[e.length],a=0,c=0,l=[],i=[l];c>-1;){for(;(a=o[c]++)<r[c];){var s=void 0,u=t[c],m=n[c][a];if("string"==typeof m?(u=c>0?u:["plain"],s=m):(u=H(u,m.type),m.alias&&(u=H(u,m.alias)),s=m.content),"string"==typeof s){var d=s.split(j),p=d.length;l.push({types:u,content:d[0]});for(var f=1;f<p;f++)_(l),i.push(l=[]),l.push({types:u,content:d[f]})}else c++,t.push(u),n.push(s),o.push(0),r.push(s.length)}c--,t.pop(),n.pop(),o.pop(),r.pop()}return _(l),i}(void 0!==c?this.tokenize(t,o,c,n):[o]),className:"prism-code language-"+n,style:void 0!==a?a.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(o.Component),z=P,I="codeLine_lJS_",M="codeLineNumber_Tfdd",D="codeLineContent_feaV";function R(e){let{line:t,classNames:n,showLineNumbers:r,getLineProps:c,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const s=c({line:t,className:(0,i.Z)(n,r&&I)}),u=t.map(((e,t)=>o.createElement("span",(0,a.Z)({key:t},l({token:e,key:t})))));return o.createElement("span",s,r?o.createElement(o.Fragment,null,o.createElement("span",{className:M}),o.createElement("span",{className:D},u)):u,o.createElement("br",null))}var V=n(5999),$={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function W(e){let{code:t,className:n}=e;const[r,a]=(0,o.useState)(!1),c=(0,o.useRef)(void 0),l=(0,o.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;const o=document.createElement("textarea"),r=document.activeElement;o.value=e,o.setAttribute("readonly",""),o.style.contain="strict",o.style.position="absolute",o.style.left="-9999px",o.style.fontSize="12pt";const a=document.getSelection();let c=!1;a.rangeCount>0&&(c=a.getRangeAt(0)),n.append(o),o.select(),o.selectionStart=0,o.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}o.remove(),c&&(a.removeAllRanges(),a.addRange(c)),r&&r.focus()}(t),a(!0),c.current=window.setTimeout((()=>{a(!1)}),1e3)}),[t]);return(0,o.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),o.createElement("button",{type:"button","aria-label":r?(0,V.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,V.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,V.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,i.Z)("clean-btn",n,$.copyButton,r&&$.copyButtonCopied),onClick:l},o.createElement("span",{className:$.copyButtonIcons,"aria-hidden":"true"},o.createElement("svg",{className:$.copyButtonIcon,viewBox:"0 0 24 24"},o.createElement("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})),o.createElement("svg",{className:$.copyButtonSuccessIcon,viewBox:"0 0 24 24"},o.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))))}var q="wordWrapButtonIcon_Bwma",F="wordWrapButtonEnabled_EoeP";function U(e){let{className:t,onClick:n,isEnabled:r}=e;const a=(0,V.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return o.createElement("button",{type:"button",onClick:n,className:(0,i.Z)("clean-btn",t,r&&F),"aria-label":a,title:a},o.createElement("svg",{className:q,viewBox:"0 0 24 24","aria-hidden":"true"},o.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})))}function G(e){let{children:t,className:n="",metastring:r,title:c,showLineNumbers:l,language:s}=e;const{prism:{defaultLanguage:d,magicComments:p}}=(0,u.L)(),f=s??n.split(" ").find((e=>e.startsWith("language-")))?.replace(/language-/,"")??d;const g=m(),v=function(){const[e,t]=(0,o.useState)(!1),[n,r]=(0,o.useState)(!1),a=(0,o.useRef)(null),c=(0,o.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),l=(0,o.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");r(n)}),[a]);return B(a,l),(0,o.useEffect)((()=>{l()}),[e,l]),(0,o.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:c}}(),y=function(e){return e?.match(h)?.groups.title??""}(r)||c,{lineClassNames:E,code:C}=b(t,{metastring:r,language:f,magicComments:p}),L=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(r);return o.createElement(k,{as:"div",className:(0,i.Z)(n,f&&!n.includes(`language-${f}`)&&`language-${f}`)},y&&o.createElement("div",{className:N.codeBlockTitle},y),o.createElement("div",{className:N.codeBlockContent},o.createElement(z,(0,a.Z)({},T,{theme:g,code:C,language:f??"text"}),(e=>{let{className:t,tokens:n,getLineProps:r,getTokenProps:a}=e;return o.createElement("pre",{tabIndex:0,ref:v.codeBlockRef,className:(0,i.Z)(t,N.codeBlock,"thin-scrollbar")},o.createElement("code",{className:(0,i.Z)(N.codeBlockLines,L&&N.codeBlockLinesWithNumbering)},n.map(((e,t)=>o.createElement(R,{key:t,line:e,getLineProps:r,getTokenProps:a,classNames:E[t],showLineNumbers:L})))))})),o.createElement("div",{className:N.buttonGroup},(v.isEnabled||v.isCodeScrollable)&&o.createElement(U,{className:N.codeButton,onClick:()=>v.toggle(),isEnabled:v.isEnabled}),o.createElement(W,{className:N.codeButton,code:C}))))}function Y(e){let{children:t,...n}=e;const r=(0,l.Z)(),c=function(e){return o.Children.toArray(e).some((e=>(0,o.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),i="string"==typeof c?G:C;return o.createElement(i,(0,a.Z)({key:String(r)},n),c)}var Q=n(9960);var X=n(7459),J=n(6043),K="details_lb9f",ee="isBrowser_bmU9",te="collapsibleContent_i85q";function ne(e){return!!e&&("SUMMARY"===e.tagName||ne(e.parentElement))}function oe(e,t){return!!e&&(e===t||oe(e.parentElement,t))}function re(e){let{summary:t,children:n,...r}=e;const c=(0,l.Z)(),i=(0,o.useRef)(null),{collapsed:s,setCollapsed:u}=(0,J.u)({initialState:!r.open}),[m,d]=(0,o.useState)(r.open);return o.createElement("details",(0,a.Z)({},r,{ref:i,open:m,"data-collapsed":s,className:(0,X.Z)(K,c&&ee,r.className),onMouseDown:e=>{ne(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;ne(t)&&oe(t,i.current)&&(e.preventDefault(),s?(u(!1),d(!0)):u(!0))}}),t??o.createElement("summary",null,"Details"),o.createElement(J.z,{lazy:!1,collapsed:s,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{u(e),d(!e)}},o.createElement("div",{className:te},n)))}var ae="details_b_Ee";function ce(e){let{...t}=e;return o.createElement(re,(0,a.Z)({},t,{className:(0,i.Z)("alert alert--info",ae,t.className)}))}var le=n(2503);function ie(e){return o.createElement(le.Z,e)}var se="containsTaskList_mC6p";var ue="img_ev3q";var me="admonition_LlT9",de="admonitionHeading_tbUL",pe="admonitionIcon_kALy",fe="admonitionContent_S0QG";const he={note:{infimaClassName:"secondary",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 14 16"},o.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:o.createElement(V.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 12 16"},o.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:o.createElement(V.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 12 16"},o.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:o.createElement(V.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 14 16"},o.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:o.createElement(V.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return o.createElement("svg",{viewBox:"0 0 16 16"},o.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:o.createElement(V.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ge={secondary:"note",important:"info",success:"tip",warning:"danger"};function ve(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=o.Children.toArray(e),n=t.find((e=>o.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),r=o.createElement(o.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:r}}(e.children);return{...e,title:e.title??t,children:n}}var ye={head:function(e){const t=o.Children.map(e.children,(e=>o.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...r}=e.props;return o.createElement(e.props.originalType,r)}return e}(e):e));return o.createElement(c.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return o.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,o.isValidElement)(e)&&t.includes(e.props?.mdxType)))?o.createElement("code",e):o.createElement(Y,e)},a:function(e){return o.createElement(Q.Z,e)},pre:function(e){return o.createElement(Y,(0,o.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=o.Children.toArray(e.children),n=t.find((e=>o.isValidElement(e)&&"summary"===e.props?.mdxType)),r=o.createElement(o.Fragment,null,t.filter((e=>e!==n)));return o.createElement(ce,(0,a.Z)({},e,{summary:n}),r)},ul:function(e){return o.createElement("ul",(0,a.Z)({},e,{className:(t=e.className,(0,i.Z)(t,t?.includes("contains-task-list")&&se))}));var t},img:function(e){return o.createElement("img",(0,a.Z)({loading:"lazy"},e,{className:(t=e.className,(0,i.Z)(t,ue))}));var t},h1:e=>o.createElement(ie,(0,a.Z)({as:"h1"},e)),h2:e=>o.createElement(ie,(0,a.Z)({as:"h2"},e)),h3:e=>o.createElement(ie,(0,a.Z)({as:"h3"},e)),h4:e=>o.createElement(ie,(0,a.Z)({as:"h4"},e)),h5:e=>o.createElement(ie,(0,a.Z)({as:"h5"},e)),h6:e=>o.createElement(ie,(0,a.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:r,icon:a}=ve(e),c=function(e){const t=ge[e]??e,n=he[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),he.info)}(n),l=r??c.label,{iconComponent:s}=c,u=a??o.createElement(s,null);return o.createElement("div",{className:(0,i.Z)(d.k.common.admonition,d.k.common.admonitionType(e.type),"alert",`alert--${c.infimaClassName}`,me)},o.createElement("div",{className:de},o.createElement("span",{className:pe},u),l),o.createElement("div",{className:fe},t))},mermaid:n(1875).Z};function be(e){let{children:t}=e;return o.createElement(r.Zo,{components:ye},t)}},9407:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var o=n(3117),r=n(7294),a=n(4334),c=n(3743),l="tableOfContents_bqdL";function i(e){let{className:t,...n}=e;return r.createElement("div",{className:(0,a.Z)(l,"thin-scrollbar",t)},r.createElement(c.Z,(0,o.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var o=n(3117),r=n(7294),a=n(6668);function c(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const o=n.slice(2,e.level);e.parentIndex=Math.max(...o),n[e.level]=t}));const o=[];return t.forEach((e=>{const{parentIndex:n,...r}=e;n>=0?t[n].children.push(r):o.push(r)})),o}function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return t.flatMap((e=>{const t=l({toc:e.children,minHeadingLevel:n,maxHeadingLevel:o});return function(e){return e.level>=n&&e.level<=o}(e)?[{...e,children:t}]:t}))}function i(e){const t=e.getBoundingClientRect();return t.top===t.bottom?i(e.parentNode):t}function s(e,t){let{anchorTopOffset:n}=t;const o=e.find((e=>i(e).top>=n));if(o){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(i(o))?o:e[e.indexOf(o)-1]??null}return e[e.length-1]??null}function u(){const e=(0,r.useRef)(0),{navbar:{hideOnScroll:t}}=(0,a.L)();return(0,r.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function m(e){const t=(0,r.useRef)(void 0),n=u();(0,r.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:o,linkActiveClassName:r,minHeadingLevel:a,maxHeadingLevel:c}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(o),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const o=[];for(let r=t;r<=n;r+=1)o.push(`h${r}.anchor`);return Array.from(document.querySelectorAll(o.join()))}({minHeadingLevel:a,maxHeadingLevel:c}),i=s(l,{anchorTopOffset:n.current}),u=e.find((e=>i&&i.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(r),e.classList.add(r),t.current=e):e.classList.remove(r)}(e,e===u)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}function d(e){let{toc:t,className:n,linkClassName:o,isChild:a}=e;return t.length?r.createElement("ul",{className:a?void 0:n},t.map((e=>r.createElement("li",{key:e.id},r.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),r.createElement(d,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}var p=r.memo(d);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:i="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:u,maxHeadingLevel:d,...f}=e;const h=(0,a.L)(),g=u??h.tableOfContents.minHeadingLevel,v=d??h.tableOfContents.maxHeadingLevel,y=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,r.useMemo)((()=>l({toc:c(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:g,maxHeadingLevel:v});return m((0,r.useMemo)((()=>{if(i&&s)return{linkClassName:i,linkActiveClassName:s,minHeadingLevel:g,maxHeadingLevel:v}}),[i,s,g,v])),r.createElement(p,(0,o.Z)({toc:y,className:n,linkClassName:i},f))}},7594:function(e,t){function n(e){let t,n=[];for(let o of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(o))n.push(parseInt(o,10));else if(t=o.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,o,r,a]=t;if(o&&a){o=parseInt(o),a=parseInt(a);const e=o<a?1:-1;"-"!==r&&".."!==r&&"\u2025"!==r||(a+=e);for(let t=o;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/4d4b98dc.e0749f01.js b/assets/js/4d4b98dc.e0749f01.js new file mode 100644 index 00000000..387a62d8 --- /dev/null +++ b/assets/js/4d4b98dc.e0749f01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[697],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return h}});var i=n(7294);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 r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,i,a=function(e,t){if(null==e)return{};var n,i,a={},r=Object.keys(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=i.createContext({}),p=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=a,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||r;return n?i.createElement(h,o(o({ref:t},c),{},{components:n})):i.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var p=2;p<r;p++)o[p]=n[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,n)}m.displayName="MDXCreateElement"},4043:function(e,t,n){n.r(t),n.d(t,{assets:function(){return s},contentTitle:function(){return o},default:function(){return u},frontMatter:function(){return r},metadata:function(){return l},toc:function(){return p}});var i=n(3117),a=(n(7294),n(3905));const r={sidebar_position:6},o="\ud83d\udd25 Redux example",l={unversionedId:"intro/examples/redux-example",id:"intro/examples/redux-example",title:"\ud83d\udd25 Redux example",description:"This example is quite different from the previous ones.",source:"@site/docs/intro/examples/redux-example.md",sourceDirName:"intro/examples",slug:"/intro/examples/redux-example",permalink:"/react-native-notificated/docs/intro/examples/redux-example",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"intro",previous:{title:"\u270d\ufe0f Custom components examples",permalink:"/react-native-notificated/docs/intro/examples/custom-components-examples"},next:{title:"\ud83d\udced Push notifications example",permalink:"/react-native-notificated/docs/intro/examples/push-notifications-example"}},s={},p=[{value:"Redux Example component",id:"redux-example-component",level:2},{value:"Visualisation",id:"visualisation",level:3},{value:"Store",id:"store",level:2},{value:"Hooks",id:"hooks",level:2},{value:"Reducers",id:"reducers",level:2},{value:"Login Form",id:"login-form",level:2},{value:"Incorrect Login",id:"incorrect-login",level:2},{value:"Incorrect Password",id:"incorrect-password",level:2},{value:"You have successfully logged in",id:"you-have-successfully-logged-in",level:2}],c={toc:p};function u(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,i.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"-redux-example"},"\ud83d\udd25 Redux example"),(0,a.kt)("br",null),(0,a.kt)("p",null,"This example is quite different from the previous ones. ",(0,a.kt)("br",null),"\nOur goal here is to show you how we can use RN Notifications library in real-life, in a more complicated environment.",(0,a.kt)("br",null),"\nFor this reason, we built a dummy login screen.",(0,a.kt)("br",null),"\nIn this example, we use the Redux Toolkit library.",(0,a.kt)("br",null),"\nLet's go step by step through it, and check where exactly notifications were triggered."),(0,a.kt)("h2",{id:"redux-example-component"},"Redux Example component"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"import React from 'react'\nimport { store } from '../redux/store'\nimport { Provider } from 'react-redux'\nimport { LoginForm } from '../components/loginForm/LoginForm'\nimport { createNotifications } from 'react-native-notificated'\n\nconst { NotificationsProvider } = createNotifications({\n isNotch: true,\n})\n\nexport const ReduxExample = () => {\n return (\n <Provider store={store}>\n <NotificationsProvider />\n <LoginForm />\n </Provider>\n )\n}\n")),(0,a.kt)("p",null,"Redux Example is the main component, where we apply redux ",(0,a.kt)("inlineCode",{parentName:"p"},"Provider"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"NotificationsProvider")," and render ",(0,a.kt)("inlineCode",{parentName:"p"},"LoginForm")," component.",(0,a.kt)("br",null)),(0,a.kt)("p",null,"Let's check what happened here:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"we imported ",(0,a.kt)("inlineCode",{parentName:"li"},"React")," (of course), ",(0,a.kt)("inlineCode",{parentName:"li"},"store")," (previously created), redux ",(0,a.kt)("inlineCode",{parentName:"li"},"Provider"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"LoginForm")," component (previously created) and well known ",(0,a.kt)("inlineCode",{parentName:"li"},"createNotifications")),(0,a.kt)("li",{parentName:"ul"},"we didn't pick ",(0,a.kt)("inlineCode",{parentName:"li"},"useNotifications")," hook. Only ",(0,a.kt)("inlineCode",{parentName:"li"},"createNotification"),", because we're not triggering notifications here"),(0,a.kt)("li",{parentName:"ul"},"because ",(0,a.kt)("inlineCode",{parentName:"li"},"NotificationsProvider")," is applied on the same level as ",(0,a.kt)("inlineCode",{parentName:"li"},"LoginForm")," we have access to the notifications inside the form")),(0,a.kt)("br",null),(0,a.kt)("h3",{id:"visualisation"},"Visualisation"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Success",src:n(1560).Z,width:"868",height:"1774"})),(0,a.kt)("br",null),(0,a.kt)("h2",{id:"store"},"Store"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"import { configureStore } from '@reduxjs/toolkit'\nimport formReducer from './reducers'\n\nexport const store = configureStore({\n reducer: {\n form: formReducer,\n },\n})\n\nexport type RootState = ReturnType<typeof store.getState>\nexport type AppDispatch = typeof store.dispatch\n")),(0,a.kt)("p",null,"In the ",(0,a.kt)("inlineCode",{parentName:"p"},"store.ts")," file, we:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"import ",(0,a.kt)("inlineCode",{parentName:"li"},"configureStore")," function, from ",(0,a.kt)("inlineCode",{parentName:"li"},"@reduxjs/toolkit"),". That function is necessary to create the store."),(0,a.kt)("li",{parentName:"ul"},"import ",(0,a.kt)("inlineCode",{parentName:"li"},"formReducer")," (we will describe this function in the next paragraphs)"),(0,a.kt)("li",{parentName:"ul"},"create ",(0,a.kt)("inlineCode",{parentName:"li"},"store")," with ",(0,a.kt)("inlineCode",{parentName:"li"},"configureStore")," function, and pass ",(0,a.kt)("inlineCode",{parentName:"li"},"formReducer")," as a ",(0,a.kt)("inlineCode",{parentName:"li"},"reducer")," there, with a key ",(0,a.kt)("inlineCode",{parentName:"li"},"form")),(0,a.kt)("li",{parentName:"ul"},"export two types: ",(0,a.kt)("inlineCode",{parentName:"li"},"RootState")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"AppDispatch")," which we use to type ",(0,a.kt)("inlineCode",{parentName:"li"},"useDispatch")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"useSelector")," hooks (we will come back to them soon)")),(0,a.kt)("br",null),(0,a.kt)("h2",{id:"hooks"},"Hooks"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'\nimport type { RootState, AppDispatch } from './store'\n\nexport const useAppDispatch = () => useDispatch<AppDispatch>()\nexport const useAppSelector: TypedUseSelectorHook<RootState> = useSelector\n")),(0,a.kt)("p",null,"We're now inside the ",(0,a.kt)("inlineCode",{parentName:"p"},"hooks.ts"),".",(0,a.kt)("br",null),"\nBecause we use ",(0,a.kt)("inlineCode",{parentName:"p"},"typescript"),", we also want to type ",(0,a.kt)("inlineCode",{parentName:"p"},"useDispatch")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"useSelector")," provided by ",(0,a.kt)("inlineCode",{parentName:"p"},"Redux"),".\nThanks to that we received ",(0,a.kt)("inlineCode",{parentName:"p"},"useAppDispatch")," function which is a typed ",(0,a.kt)("inlineCode",{parentName:"p"},"useDispatch")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"useAppSelector")," which is typed ",(0,a.kt)("inlineCode",{parentName:"p"},"useSelector"),"\nWe will use them in the app, instead of using ",(0,a.kt)("inlineCode",{parentName:"p"},"useDispatch")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"useSelector"),"."),(0,a.kt)("br",null),(0,a.kt)("h2",{id:"reducers"},"Reducers"),(0,a.kt)("p",null,"This file (",(0,a.kt)("inlineCode",{parentName:"p"},"reducers.ts"),") is most important for us, because we use our ",(0,a.kt)("inlineCode",{parentName:"p"},"notify()")," function here."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"import { createSlice, Dispatch, PayloadAction } from '@reduxjs/toolkit'\nimport { notify } from '../components/loginForm/LoginForm'\n\ntype FormState = {\n login: string\n password: string\n}\n\nconst initialState: FormState = {\n login: '',\n password: '',\n}\n\nexport const formSlice = createSlice({\n name: 'form',\n initialState,\n reducers: {\n updateLogin: (state, action: PayloadAction<string>) => {\n state.login = action.payload\n },\n updatePassword: (state, action: PayloadAction<string>) => {\n state.password = action.payload\n },\n submit: (state) => {\n if (state.login.length < 4) {\n notify('error', {\n params: {\n title: 'Incorrect login',\n description: 'Login must contain at least 4 characters. ',\n style: {\n multiline: 2,\n },\n },\n })\n }\n if (state.password.length < 4) {\n notify('error', {\n params: {\n title: 'Incorrect password',\n description: 'Password must contain at least 4 characters. ',\n style: {\n multiline: 2,\n },\n },\n })\n }\n notify('success', {\n params: {\n title: 'Welcome again',\n description: 'You have successfully signed in. ',\n style: {\n multiline: 2,\n },\n },\n })\n },\n },\n})\n\nexport const { updateLogin, updatePassword, submit } = formSlice.actions\n\nexport default formSlice.reducer\n\nexport const fetchUsers = (dispatch: Dispatch) => {\n setTimeout(() => dispatch(submit()), 2000)\n}\n")),(0,a.kt)("p",null,"In this file we:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"import function and types: ",(0,a.kt)("inlineCode",{parentName:"li"},"createSlice"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"Dispatch"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"PayloadAction")," from the ",(0,a.kt)("inlineCode",{parentName:"li"},"@reduxjs/toolkit")),(0,a.kt)("li",{parentName:"ul"},"and the ",(0,a.kt)("inlineCode",{parentName:"li"},"notify()")," function from the ",(0,a.kt)("inlineCode",{parentName:"li"},"LoginForm")," component. Why from there? In our opinion, it belongs there. We just want to use it in the ",(0,a.kt)("inlineCode",{parentName:"li"},"reducers.ts")," file, that's why we have imported it here"),(0,a.kt)("li",{parentName:"ul"},"create the type for our ",(0,a.kt)("inlineCode",{parentName:"li"},"initialState")," (type ",(0,a.kt)("inlineCode",{parentName:"li"},"FormState"),"), and create ",(0,a.kt)("inlineCode",{parentName:"li"},"initialState")," which contains only ",(0,a.kt)("inlineCode",{parentName:"li"},"login")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"password"),", because it's all we need in our simple form"),(0,a.kt)("li",{parentName:"ul"},"create ",(0,a.kt)("inlineCode",{parentName:"li"},"formSlice")," which contains our reducers: ",(0,a.kt)("inlineCode",{parentName:"li"},"updateLogin"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"updatePassword")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"submit"),". ",(0,a.kt)("br",null),"\nThe ",(0,a.kt)("inlineCode",{parentName:"li"},"updateLogin")," and the ",(0,a.kt)("inlineCode",{parentName:"li"},"updatePassword")," are just updaters, which are responsible for our state change, but ",(0,a.kt)("inlineCode",{parentName:"li"},"submit")," is a function that sends our data to the backend (Of course, as we can see, it is not doing that. It's just making simple validation, and check if the login and the password have at least 4 characters but shhh ;) ). ",(0,a.kt)("br",null),"\nIf there is a problem with validation, our ",(0,a.kt)("inlineCode",{parentName:"li"},"error")," notifications are used. If everything is fine, we use ",(0,a.kt)("inlineCode",{parentName:"li"},"success")," notification."),(0,a.kt)("li",{parentName:"ul"},"after that, we just export our reducer function and the reducer itself"),(0,a.kt)("li",{parentName:"ul"},"The last step is to create ",(0,a.kt)("inlineCode",{parentName:"li"},"fetchUsers")," function, which imitates the time we need to get a response from the backend. In fact, we just wrap our ",(0,a.kt)("inlineCode",{parentName:"li"},"submit")," here")),(0,a.kt)("p",null,"This is where we used our ",(0,a.kt)("inlineCode",{parentName:"p"},"notify()")," function. Let's go to the last file: ",(0,a.kt)("inlineCode",{parentName:"p"},"LoginForm")," where we use all of that."),(0,a.kt)("br",null),(0,a.kt)("h2",{id:"login-form"},"Login Form"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"import React from 'react'\nimport {\n NativeSyntheticEvent,\n SafeAreaView,\n Text,\n TextInput,\n TextInputChangeEventData,\n TouchableOpacity,\n View,\n} from 'react-native'\nimport { fetchUsers, updateLogin, updatePassword } from '../../redux/reducers'\nimport { useAppDispatch, useAppSelector } from '../../redux/hooks'\nimport { styles } from './styles'\nimport { createNotifications } from 'react-native-notificated'\n\nexport const { notify } = createNotifications()\n\nexport const LoginForm = () => {\n const login = useAppSelector((state) => state.form.login)\n const password = useAppSelector((state) => state.form.password)\n const dispatch = useAppDispatch()\n\n const handleLoginChange = (e: NativeSyntheticEvent<TextInputChangeEventData>) => {\n dispatch(updateLogin(e.nativeEvent.text))\n }\n\n const handlePasswordChange = (e: NativeSyntheticEvent<TextInputChangeEventData>) => {\n dispatch(updatePassword(e.nativeEvent.text))\n }\n\n return (\n <SafeAreaView style={styles.container}>\n <Text style={styles.title}> Sign In </Text>\n <View style={styles.form}>\n <Text style={styles.label}>E Mail</Text>\n <TextInput onChange={handleLoginChange} value={login} style={styles.input} />\n <Text style={styles.label}>Password</Text>\n <TextInput\n onChange={handlePasswordChange}\n value={password}\n style={styles.input}\n secureTextEntry\n />\n <TouchableOpacity style={styles.button} onPress={() => fetchUsers(dispatch)}>\n <Text style={styles.buttonText}>Confirm</Text>\n </TouchableOpacity>\n </View>\n </SafeAreaView>\n )\n}\n")),(0,a.kt)("p",null,"So again at the beginning, we need to import everything we need:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"react native")," components and event"),(0,a.kt)("li",{parentName:"ul"},"our reducers (please remember that ",(0,a.kt)("inlineCode",{parentName:"li"},"fetchUsers")," is in fact ",(0,a.kt)("inlineCode",{parentName:"li"},"submit")," with ",(0,a.kt)("inlineCode",{parentName:"li"},"setTimeout"),")"),(0,a.kt)("li",{parentName:"ul"},"our hooks, because we use them instead of ",(0,a.kt)("inlineCode",{parentName:"li"},"useDispatch")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"useSelector")),(0,a.kt)("li",{parentName:"ul"},"styles (previously prepared)"),(0,a.kt)("li",{parentName:"ul"},"and ",(0,a.kt)("inlineCode",{parentName:"li"},"createNotifications")," to get access to the ",(0,a.kt)("inlineCode",{parentName:"li"},"notify()"))),(0,a.kt)("p",null,"After that we pick and export ",(0,a.kt)("inlineCode",{parentName:"p"},"notify()")," (we're using it in the ",(0,a.kt)("inlineCode",{parentName:"p"},"reducers.ts")," file)."),(0,a.kt)("p",null,"Our ",(0,a.kt)("inlineCode",{parentName:"p"},"LoginForm")," component consists of:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"login")," (that we pull from the state)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"password")," (that we pull from the state)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"dispatch")," function"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"handleLoginChange")," function (where we dispatch ",(0,a.kt)("inlineCode",{parentName:"li"},"updateLogin"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"handlePasswordChange")," function (where we dispatch ",(0,a.kt)("inlineCode",{parentName:"li"},"updatePassword"),")")),(0,a.kt)("p",null,"In fact, that is all..."),(0,a.kt)("p",null,"We need to pass the function to the inputs and the submit button."),(0,a.kt)("p",null,"Now let\u2019s take a look at our notifications when we provide an invalid email or password vs. when we enter valid data."),(0,a.kt)("h2",{id:"incorrect-login"},"Incorrect Login"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Success",src:n(8344).Z,width:"866",height:"1766"})),(0,a.kt)("br",null),(0,a.kt)("h2",{id:"incorrect-password"},"Incorrect Password"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Success",src:n(4111).Z,width:"862",height:"1770"})),(0,a.kt)("br",null),(0,a.kt)("h2",{id:"you-have-successfully-logged-in"},"You have successfully logged in"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Success",src:n(2394).Z,width:"864",height:"1770"})),(0,a.kt)("br",null))}u.isMDXComponent=!0},8344:function(e,t,n){t.Z=n.p+"assets/images/incorrect-login-2846bf481c43dc86cc3105f576998eae.png"},4111:function(e,t,n){t.Z=n.p+"assets/images/incorrect-password-c051f8a12ce334891261d6f53e7e1598.png"},1560:function(e,t,n){t.Z=n.p+"assets/images/login-form-c3f183c3c2dd317eaf2a03cd8a7f1f9a.png"},2394:function(e,t,n){t.Z=n.p+"assets/images/login-success-46bc9193d8daa99ae1862cc47321a7c4.png"}}]); \ No newline at end of file diff --git a/assets/js/6e08fe13.d9182055.js b/assets/js/6e08fe13.d9182055.js new file mode 100644 index 00000000..c0eba164 --- /dev/null +++ b/assets/js/6e08fe13.d9182055.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[678],{3905:function(t,e,n){n.d(e,{Zo:function(){return d},kt:function(){return k}});var a=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function l(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){i(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function o(t,e){if(null==t)return{};var n,a,i=function(t,e){if(null==t)return{};var n,a,i={},r=Object.keys(t);for(a=0;a<r.length;a++)n=r[a],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a<r.length;a++)n=r[a],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var p=a.createContext({}),s=function(t){var e=a.useContext(p),n=e;return t&&(n="function"==typeof t?t(e):l(l({},e),t)),n},d=function(t){var e=s(t.components);return a.createElement(p.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},c=a.forwardRef((function(t,e){var n=t.components,i=t.mdxType,r=t.originalType,p=t.parentName,d=o(t,["components","mdxType","originalType","parentName"]),u=s(n),c=i,k=u["".concat(p,".").concat(c)]||u[c]||m[c]||r;return n?a.createElement(k,l(l({ref:e},d),{},{components:n})):a.createElement(k,l({ref:e},d))}));function k(t,e){var n=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var r=n.length,l=new Array(r);l[0]=c;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[u]="string"==typeof t?t:i,l[1]=o;for(var s=2;s<r;s++)l[s]=n[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},6985:function(t,e,n){n.r(e),n.d(e,{assets:function(){return p},contentTitle:function(){return l},default:function(){return u},frontMatter:function(){return r},metadata:function(){return o},toc:function(){return s}});var a=n(3117),i=(n(7294),n(3905));const r={sidebar_position:1},l="\ud83d\udcec Single Notification Config",o={unversionedId:"intro/default-variants-config/props-config",id:"intro/default-variants-config/props-config",title:"\ud83d\udcec Single Notification Config",description:"Besides global settings, you can also pass props to the notification instance.",source:"@site/docs/intro/default-variants-config/props-config.md",sourceDirName:"intro/default-variants-config",slug:"/intro/default-variants-config/props-config",permalink:"/react-native-notificated/docs/intro/default-variants-config/props-config",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"intro",previous:{title:"\ud83c\udf0d Global Styles Settings",permalink:"/react-native-notificated/docs/intro/default-variants-config/global-config"},next:{title:"\ud83d\udccc Notification position",permalink:"/react-native-notificated/docs/intro/default-variants-config/position"}},p={},s=[{value:"Gesture config",id:"gesture-config",level:2},{value:"\u2728 Style props",id:"-style-props",level:2},{value:"\ud83d\udd8c\ufe0f Style overwriting example",id:"\ufe0f-style-overwriting-example",level:2}],d={toc:s};function u(t){let{components:e,...r}=t;return(0,i.kt)("wrapper",(0,a.Z)({},d,r,{components:e,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"-single-notification-config"},"\ud83d\udcec Single Notification Config"),(0,i.kt)("br",null),(0,i.kt)("p",null,"Besides global settings, you can also pass props to the notification instance.",(0,i.kt)("br",null),"\nPROPS ",(0,i.kt)("inlineCode",{parentName:"p"},"description")," IS REQUIRED. ",(0,i.kt)("br",null),"\nThere are two main props you can pass to the notification:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"params"),(0,i.kt)("li",{parentName:"ul"},"config")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0}," <Text\n onPress={() =>\n notify('error', {\n params: {},\n config: {},\n },\n )}\n >\n")),(0,i.kt)("p",null,"Let's take a look at the ",(0,i.kt)("inlineCode",{parentName:"p"},"params")," object properties:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Name"),(0,i.kt)("th",{parentName:"tr",align:null},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Default"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"title"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},"''"),(0,i.kt)("td",{parentName:"tr",align:null},"Props you can use to pass the notification title. Most of the notifications have the title, but this is not required.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"description"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},"''"),(0,i.kt)("td",{parentName:"tr",align:null},"Props you can use to pass the notification description. This props is required!")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"onPress"),(0,i.kt)("td",{parentName:"tr",align:null},"Function"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"The onPress props gives you possibility to pass extra function, which will be invoked when you use 'X' to close the notification")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"style"),(0,i.kt)("td",{parentName:"tr",align:null},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"Object with the style properties. You can pass here style settings which will be applied only to this notification instance. Style properties passed here overwrites style settings from ",(0,i.kt)("inlineCode",{parentName:"td"},"defaultStylesSettings"),".")))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0}," <Text\n onPress={() =>\n notify('error', {\n params: {\n title: '',\n description: '',\n onPress: () => {},\n style: {},\n },\n config: {},\n },\n )}\n >\n")),(0,i.kt)("p",null,"And in the ",(0,i.kt)("inlineCode",{parentName:"p"},"config")," object:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Name"),(0,i.kt)("th",{parentName:"tr",align:null},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Default"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"duration"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},"3000"),(0,i.kt)("td",{parentName:"tr",align:null},"Use this property to set how long the notifications should be displayed on the screen. Value expressed in milliseconds")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"notificationPosition"),(0,i.kt)("td",{parentName:"tr",align:null},"'top' / 'center' / 'bottom'"),(0,i.kt)("td",{parentName:"tr",align:null},"'top'"),(0,i.kt)("td",{parentName:"tr",align:null},"Set where the notifications should appear on the screen. You can choose one of three default options: top / center / bottom. To read more about the notification position please go to the ",(0,i.kt)("a",{parentName:"td",href:"../default-variants-config/position"},"NOTIFICATION POSITION")," section.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"animationConfig"),(0,i.kt)("td",{parentName:"tr",align:null},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"SlideInLeftSlideOutRight"),(0,i.kt)("td",{parentName:"tr",align:null},"Property responsible for the notification animation. You can set one of the animations prepared by us, or make your own config. To read more about the animation settings please go to the ",(0,i.kt)("a",{parentName:"td",href:"../animations/changing-transitions"},"ANIMATIONS SETTINGS")," section.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"onClose"),(0,i.kt)("td",{parentName:"tr",align:null},"Function"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"The onClose config option gives you possibility to pass an extra function, which will be invoked upon dismissal of the notification (triggered by swipe gesture, ",(0,i.kt)("inlineCode",{parentName:"td"},"remove")," method - e.g. close button in default variants or when notification disappears)")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"gestureConfig"),(0,i.kt)("td",{parentName:"tr",align:null},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"iOS: 'y' / android: 'x'"),(0,i.kt)("td",{parentName:"tr",align:null},"Object responsible for setting gesture direction that triggers swipe-dismiss of notification.")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null}),(0,i.kt)("td",{parentName:"tr",align:null}),(0,i.kt)("td",{parentName:"tr",align:null}),(0,i.kt)("td",{parentName:"tr",align:null})))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0}," <Text\n onPress={() =>\n notify('error', {\n params: {},\n config: {\n duration: 100,\n notificationPosition: 'top',\n animationConfig: {},\n onClose: () => {},\n gestureConfig: { direction: 'y' }\n },\n },\n )}\n >\n")),(0,i.kt)("br",null),(0,i.kt)("br",null),(0,i.kt)("h2",{id:"gesture-config"},"Gesture config"),(0,i.kt)("p",null,"The library gives the possibility to swipe-dismiss the notication so users don't rely only on pressing close button or ",(0,i.kt)("inlineCode",{parentName:"p"},"duration")," timeout."),(0,i.kt)("p",null,"There are 3 types of gesture config: none, one-dimensional and two-dimensional. By choosing ",(0,i.kt)("inlineCode",{parentName:"p"},"none"),", we switch off the possibility to swipe-dismiss a notification."),(0,i.kt)("p",null,"We can pass ",(0,i.kt)("inlineCode",{parentName:"p"},"gestureConfig")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"config")," object like so:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"gestureConfig: {\n direction: 'y' | 'x' | 'full' | 'none'\n}\n")),(0,i.kt)("p",null,"Default value for iOS: ",(0,i.kt)("inlineCode",{parentName:"p"},"'y'"),"\nDefault value for Android: ",(0,i.kt)("inlineCode",{parentName:"p"},"'x'")),(0,i.kt)("p",null,"By choosing ",(0,i.kt)("inlineCode",{parentName:"p"},"full")," direction, we allow notifications to be dismissed in both directions. In this case, some additional config is required, like so:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0}," gestureConfig: {\n direction: 'full',\n x: { activationDistances: 50, activationVelocities: 200 },\n y: { activationDistances: 50, activationVelocities: 200 },\n },\n")),(0,i.kt)("h2",{id:"-style-props"},"\u2728 Style props"),(0,i.kt)("p",null,"As we said above, in the ",(0,i.kt)("inlineCode",{parentName:"p"},"style")," we can pass style settings for the notification instance. ",(0,i.kt)("br",null),"\nIn fact ",(0,i.kt)("inlineCode",{parentName:"p"},"style")," props have the same properties as the ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"successConfig"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"errorConfig"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"warningConfig"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"infoConfig"),".\nCheck the ",(0,i.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/default-variants-config/global-config"},"GLOBAL STYLES SETTINGS")),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Name"),(0,i.kt)("th",{parentName:"tr",align:null},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Default"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"titleSize"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"16")),(0,i.kt)("td",{parentName:"tr",align:null},"Set font size for the notification title")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"titleColor"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'#505050'")," (darkMode - false) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#FAFAFA'")," (darkMode - true)"),(0,i.kt)("td",{parentName:"tr",align:null},"Set font color for the notification title")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"descriptionSize"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"14")),(0,i.kt)("td",{parentName:"tr",align:null},"Set font size for the notification description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"descriptionColor"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'#505050'")," (darkMode - false) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#FAFAFA'")," (darkMode - true)"),(0,i.kt)("td",{parentName:"tr",align:null},"Set font color for the notification description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"bgColor"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'#FFFFFF'")," (darkMode - false) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#2D2D2D'")," (darkMode - true)"),(0,i.kt)("td",{parentName:"tr",align:null},"Set background color for the notification")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"borderType"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'border'")," / ",(0,i.kt)("inlineCode",{parentName:"td"},"'accent'")," / ",(0,i.kt)("inlineCode",{parentName:"td"},"'no-border'")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'border'")),(0,i.kt)("td",{parentName:"tr",align:null},"Set type of border for the notification (",(0,i.kt)("a",{parentName:"td",href:"./global-config#-border-types-examples"},"EXAMPLES"),")")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"accentColor"),(0,i.kt)("td",{parentName:"tr",align:null},"String"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'#00EA33'")," (success type) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#FC6060'")," (error type) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#8CACFF'")," (warning type) / ",(0,i.kt)("inlineCode",{parentName:"td"},"'#FFD37D'")," (info type)"),(0,i.kt)("td",{parentName:"tr",align:null},"Set accent color for the notification. The color of the border or the left side accent line")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"borderRadius"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"14")),(0,i.kt)("td",{parentName:"tr",align:null},"Set border radius for the notification container")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"borderWidth"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"1")),(0,i.kt)("td",{parentName:"tr",align:null},"Set border width for the notification container")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"multiline"),(0,i.kt)("td",{parentName:"tr",align:null},"Number"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"1")),(0,i.kt)("td",{parentName:"tr",align:null},"Set number of visible lines for the notification description")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"defaultIconType"),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'color'")," / ",(0,i.kt)("inlineCode",{parentName:"td"},"'monochromatic'")," / ",(0,i.kt)("inlineCode",{parentName:"td"},"'no-icon'")),(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("inlineCode",{parentName:"td"},"'color'")),(0,i.kt)("td",{parentName:"tr",align:null},"This props works only with default icons. If you set your own icon it has no effect. (",(0,i.kt)("a",{parentName:"td",href:"./global-config#%EF%B8%8F-default-icon-type-examples"},"EXAMPLES"),")")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"leftIconSource"),(0,i.kt)("td",{parentName:"tr",align:null},"ImageSourcePropType"),(0,i.kt)("td",{parentName:"tr",align:null},"-"),(0,i.kt)("td",{parentName:"tr",align:null},"Set custom left icon for the notification (in png). For example. ",(0,i.kt)("inlineCode",{parentName:"td"},"require(../assets/icon.png)"))))),(0,i.kt)("p",null,"What is important here is that the ",(0,i.kt)("inlineCode",{parentName:"p"},"style")," props overwrite the styles passed in ",(0,i.kt)("inlineCode",{parentName:"p"},"defaultStylesSettings"),". ",(0,i.kt)("br",null),"\nTo understand it perfectly, let's take a look at the few examples below."),(0,i.kt)("br",null),(0,i.kt)("br",null),(0,i.kt)("h2",{id:"\ufe0f-style-overwriting-example"},"\ud83d\udd8c\ufe0f Style overwriting example"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView, Text } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { styles } from './styles'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n defaultStylesSettings: {\n globalConfig: {\n titleSize: 20,\n titleColor: '#4B0082',\n descriptionSize: 12,\n descriptionColor: '#B0E0E6',\n bgColor: '#FFFFF0',\n borderRadius: 25,\n accentColor: '#4B0082',\n borderWidth: 3,\n multiline: 5,\n },\n errorConfig: {\n descriptionSize: 12,\n descriptionColor: '#4B0082',\n accentColor: '#B0E0E6',\n borderWidth: 2,\n multiline: 10,\n },\n },\n})\n\nexport const GlobalConfigExamples = () => {\n const { notify } = useNotifications()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n <Text\n onPress={() =>\n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n style: {\n borderRadius: 15,\n borderWidth: 1,\n },\n },\n })\n }>\n Emit error\n </Text>\n </SafeAreaView>\n )\n}\n")),(0,i.kt)("p",null,"In the beginning, we overwrote ",(0,i.kt)("inlineCode",{parentName:"p"},"globalConfig")," in the default settings:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"titleSize"),(0,i.kt)("li",{parentName:"ul"},"titleColor"),(0,i.kt)("li",{parentName:"ul"},"descriptionSize"),(0,i.kt)("li",{parentName:"ul"},"descriptionColor"),(0,i.kt)("li",{parentName:"ul"},"bgColor"),(0,i.kt)("li",{parentName:"ul"},"borderRadius"),(0,i.kt)("li",{parentName:"ul"},"accentColor"),(0,i.kt)("li",{parentName:"ul"},"borderWidth"),(0,i.kt)("li",{parentName:"ul"},"multiline")),(0,i.kt)("p",null,"In the ",(0,i.kt)("inlineCode",{parentName:"p"},"errorConfig")," we have overwritten:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"descriptionSize"),(0,i.kt)("li",{parentName:"ul"},"descriptionColor"),(0,i.kt)("li",{parentName:"ul"},"accentColor"),(0,i.kt)("li",{parentName:"ul"},"borderWidth"),(0,i.kt)("li",{parentName:"ul"},"multiline")),(0,i.kt)("p",null,"And in ",(0,i.kt)("inlineCode",{parentName:"p"},"style")," we have overwritten:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"borderRadius"),(0,i.kt)("li",{parentName:"ul"},"accentColor"),(0,i.kt)("li",{parentName:"ul"},"borderWidth")),(0,i.kt)("p",null,"So the final style setting for this ",(0,i.kt)("inlineCode",{parentName:"p"},"error")," notification is:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsx"},"{\n titleSize: 20,\n titleColor: '#4B0082',\n descriptionSize: 12,\n descriptionColor: '#4B0082',\n bgColor: '#FFFFF0',\n borderRadius: 15,\n borderWidth: 1,\n accentColor: '#B0E0E6',\n multiline: 10\n}\n")),(0,i.kt)("p",null,"Remember that ",(0,i.kt)("inlineCode",{parentName:"p"},"title"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"description")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"onPress")," are not the styling props. ",(0,i.kt)("br",null)),(0,i.kt)("br",null),"And the final effect:",(0,i.kt)("br",null),(0,i.kt)("br",null),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Border",src:n(5804).Z,width:"742",height:"214"})),(0,i.kt)("br",null),(0,i.kt)("br",null),(0,i.kt)("p",null,"So in conclusion -",(0,i.kt)("br",null)),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"style")," object overwrites ",(0,i.kt)("inlineCode",{parentName:"li"},"successConfig")," / ",(0,i.kt)("inlineCode",{parentName:"li"},"errorConfig")," / ",(0,i.kt)("inlineCode",{parentName:"li"},"warningConfig")," / ",(0,i.kt)("inlineCode",{parentName:"li"},"infoConfig"),"(depends on which notification type are you using and styling), ",(0,i.kt)("inlineCode",{parentName:"li"},"globalConfig"),", and DEFAULT SETTINGS",(0,i.kt)("br",null)),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"successConfig")," / ",(0,i.kt)("inlineCode",{parentName:"li"},"errorConfig")," / ",(0,i.kt)("inlineCode",{parentName:"li"},"warningConfig")," / ",(0,i.kt)("inlineCode",{parentName:"li"},"infoConfig")," overwrites ",(0,i.kt)("inlineCode",{parentName:"li"},"globalConfig"),", and DEFAULT SETTINGS",(0,i.kt)("br",null)),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"globalConfig")," overwrites DEFAULT SETTINGS")))}u.isMDXComponent=!0},5804:function(t,e,n){e.Z=n.p+"assets/images/success-props-970843c88edd02c5a096565bb32df1fa.png"}}]); \ No newline at end of file diff --git a/assets/js/7155e245.5d6537aa.js b/assets/js/7155e245.5d6537aa.js new file mode 100644 index 00000000..ebcf04cf --- /dev/null +++ b/assets/js/7155e245.5d6537aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[58],{3905:function(t,e,n){n.d(e,{Zo:function(){return l},kt:function(){return m}});var i=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function c(t,e){if(null==t)return{};var n,i,r=function(t,e){if(null==t)return{};var n,i,r={},o=Object.keys(t);for(i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var s=i.createContext({}),u=function(t){var e=i.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},l=function(t){var e=u(t.components);return i.createElement(s.Provider,{value:e},t.children)},f="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,s=t.parentName,l=c(t,["components","mdxType","originalType","parentName"]),f=u(n),d=r,m=f["".concat(s,".").concat(d)]||f[d]||p[d]||o;return n?i.createElement(m,a(a({ref:e},l),{},{components:n})):i.createElement(m,a({ref:e},l))}));function m(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,a=new Array(o);a[0]=d;var c={};for(var s in e)hasOwnProperty.call(e,s)&&(c[s]=e[s]);c.originalType=t,c[f]="string"==typeof t?t:r,a[1]=c;for(var u=2;u<o;u++)a[u]=n[u];return i.createElement.apply(null,a)}return i.createElement.apply(null,n)}d.displayName="MDXCreateElement"},2306:function(t,e,n){n.r(e),n.d(e,{assets:function(){return s},contentTitle:function(){return a},default:function(){return f},frontMatter:function(){return o},metadata:function(){return c},toc:function(){return u}});var i=n(3117),r=(n(7294),n(3905));const o={sidebar_position:1},a="\ud83d\udc23 Basic usage",c={unversionedId:"intro/basics/basic-usage",id:"intro/basics/basic-usage",title:"\ud83d\udc23 Basic usage",description:"Create Notifications",source:"@site/docs/intro/basics/basic-usage.md",sourceDirName:"intro/basics",slug:"/intro/basics/basic-usage",permalink:"/react-native-notificated/docs/intro/basics/basic-usage",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"intro",previous:{title:"\ud83d\udc4b\ud83c\udffc Getting Started",permalink:"/react-native-notificated/docs/intro/"},next:{title:"\ud83d\udee0 Basic configuration",permalink:"/react-native-notificated/docs/intro/basics/basic-configuration"}},s={},u=[{value:"Create Notifications",id:"create-notifications",level:3},{value:"\ud83d\udee0 Add or Wrap your entry component with NotificationsProvider",id:"-add-or-wrap-your-entry-component-with-notificationsprovider",level:3},{value:"\ud83d\udce2 Display notification",id:"-display-notification",level:3},{value:"\ud83d\udd28 Modify notification",id:"-modify-notification",level:3},{value:"\ud83d\uddd1 Remove notification",id:"-remove-notification",level:3}],l={toc:u};function f(t){let{components:e,...n}=t;return(0,r.kt)("wrapper",(0,i.Z)({},l,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"-basic-usage"},"\ud83d\udc23 Basic usage"),(0,r.kt)("h3",{id:"create-notifications"},"Create Notifications"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"import { createNotifications } from 'react-native-notificated'\n\nconst { NotificationsProvider, useNotifications, ...events } = createNotifications()\n")),(0,r.kt)("h3",{id:"-add-or-wrap-your-entry-component-with-notificationsprovider"},"\ud83d\udee0 Add or Wrap your entry component with NotificationsProvider"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"return (\n <>\n <App />\n <NotificationsProvider />\n </>\n)\n")),(0,r.kt)("p",null,"OR"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"return (\n <NotificationsProvider>\n <App />\n </NotificationsProvider>\n)\n")),(0,r.kt)("h3",{id:"-display-notification"},"\ud83d\udce2 Display notification"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"const { notify } = useNotifications()\n\nconst notificationMetadata = notify('success', {\n params: {\n title: 'Hello',\n description: 'Wow, that was easy',\n },\n})\n")),(0,r.kt)("h3",{id:"-modify-notification"},"\ud83d\udd28 Modify notification"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"const { modify } = useNotifications()\n\nmodify({\n id: notificationMetadata.id,\n params: { title: 'New title', description: 'New description' },\n})\n")),(0,r.kt)("h3",{id:"-remove-notification"},"\ud83d\uddd1 Remove notification"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"const { remove } = useNotifications()\n\nremove(notificationMetadata.id)\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/73b95941.c3b9b8e7.js b/assets/js/73b95941.c3b9b8e7.js new file mode 100644 index 00000000..50b5a7d8 --- /dev/null +++ b/assets/js/73b95941.c3b9b8e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[875],{3905:function(t,e,n){n.d(e,{Zo:function(){return f},kt:function(){return h}});var i=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){o(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function l(t,e){if(null==t)return{};var n,i,o=function(t,e){if(null==t)return{};var n,i,o={},r=Object.keys(t);for(i=0;i<r.length;i++)n=r[i],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(i=0;i<r.length;i++)n=r[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var c=i.createContext({}),s=function(t){var e=i.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},f=function(t){var e=s(t.components);return i.createElement(c.Provider,{value:e},t.children)},p="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var n=t.components,o=t.mdxType,r=t.originalType,c=t.parentName,f=l(t,["components","mdxType","originalType","parentName"]),p=s(n),d=o,h=p["".concat(c,".").concat(d)]||p[d]||u[d]||r;return n?i.createElement(h,a(a({ref:e},f),{},{components:n})):i.createElement(h,a({ref:e},f))}));function h(t,e){var n=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var r=n.length,a=new Array(r);a[0]=d;var l={};for(var c in e)hasOwnProperty.call(e,c)&&(l[c]=e[c]);l.originalType=t,l[p]="string"==typeof t?t:o,a[1]=l;for(var s=2;s<r;s++)a[s]=n[s];return i.createElement.apply(null,a)}return i.createElement.apply(null,n)}d.displayName="MDXCreateElement"},4467:function(t,e,n){n.r(e),n.d(e,{assets:function(){return c},contentTitle:function(){return a},default:function(){return p},frontMatter:function(){return r},metadata:function(){return l},toc:function(){return s}});var i=n(3117),o=(n(7294),n(3905));const r={sidebar_position:2},a="\ud83d\udccc Notification position",l={unversionedId:"intro/default-variants-config/position",id:"intro/default-variants-config/position",title:"\ud83d\udccc Notification position",description:"\ud83c\udf9b Changing position",source:"@site/docs/intro/default-variants-config/position.md",sourceDirName:"intro/default-variants-config",slug:"/intro/default-variants-config/position",permalink:"/react-native-notificated/docs/intro/default-variants-config/position",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"intro",previous:{title:"\ud83d\udcec Single Notification Config",permalink:"/react-native-notificated/docs/intro/default-variants-config/props-config"},next:{title:"\ud83d\udccf Notification width",permalink:"/react-native-notificated/docs/intro/default-variants-config/width"}},c={},s=[{value:"\ud83c\udf9b Changing position",id:"-changing-position",level:2},{value:"Set the position for all notifications in the global config object:",id:"set-the-position-for-all-notifications-in-the-global-config-object",level:3},{value:"Set the position locally inside config object in a single notification instance:",id:"set-the-position-locally-inside-config-object-in-a-single-notification-instance",level:3},{value:"\ud83d\udd26 Position config priority",id:"-position-config-priority",level:2}],f={toc:s};function p(t){let{components:e,...n}=t;return(0,o.kt)("wrapper",(0,i.Z)({},f,n,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"-notification-position"},"\ud83d\udccc Notification position"),(0,o.kt)("h4",{id:""}),(0,o.kt)("h2",{id:"-changing-position"},"\ud83c\udf9b Changing position"),(0,o.kt)("p",null,"You can change the position of the notifications displayed on the screen. ",(0,o.kt)("br",null),"\nThere are seven possible options to choose from:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"top")," - at the top of the screen"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"top-right")," - at the top right of the screen"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"top-left")," - at the top left of the screen"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"center")," - at the middle of the screen (y-axis)"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"bottom"),"- at the bottom of the screen"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"bottom-right")," - at the bottom right of the screen"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"bottom-left")," - at the bottom left of the screen")),(0,o.kt)("p",null,"The default setting for the ",(0,o.kt)("inlineCode",{parentName:"p"},"notificationPosition")," is the ",(0,o.kt)("inlineCode",{parentName:"p"},"top")," value."),(0,o.kt)("p",null,"Depending on whether you want to change the notification position for the whole app or only change it for a certain notification, you can either:"),(0,o.kt)("br",null),(0,o.kt)("h3",{id:"set-the-position-for-all-notifications-in-the-global-config-object"},"Set the position for all notifications in the global config object:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView, Text } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { styles } from './styles'\n\nconst { NotificationsProvider, useNotifications } = createNotifications({\n notificationPosition: 'center',\n})\n\nexport const ExampleNotification = () => {\n const { notify } = useNotifications()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n <Text\n onPress={() =>\n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }>\n Emit error\n </Text>\n </SafeAreaView>\n )\n}\n")),(0,o.kt)("p",null,"Now all the notifications in the app will be displayed in the middle of the screen (y-axis) because we have set the ",(0,o.kt)("inlineCode",{parentName:"p"},"notificationPosition")," value for the ",(0,o.kt)("inlineCode",{parentName:"p"},"center"),"."),(0,o.kt)("br",null),(0,o.kt)("br",null),(0,o.kt)("h3",{id:"set-the-position-locally-inside-config-object-in-a-single-notification-instance"},"Set the position locally inside config object in a single notification instance:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView, Text } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { styles } from './styles'\n\nconst { NotificationsProvider, useNotifications } = createNotifications({\n notificationPosition: 'center',\n})\n\nexport const ExampleNotification = () => {\n const { notify } = useNotifications()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n <Text\n onPress={() =>\n notify('error', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Error',\n },\n config: {\n notificationPosition: 'bottom',\n },\n })\n }>\n Emit error\n </Text>\n </SafeAreaView>\n )\n}\n")),(0,o.kt)("p",null,"Now, all the notifications in the app (instead of this one ",(0,o.kt)("inlineCode",{parentName:"p"},"error")," notification in the example above) will be displayed in the middle of the screen (y-axis).",(0,o.kt)("br",null),"\nBut the ",(0,o.kt)("inlineCode",{parentName:"p"},"error")," notification from the example above will be displayed at the bottom of the screen because the local config overwrites the global config.",(0,o.kt)("br",null),"\nOf course, we can just set it locally, there is no need to set it globally if we don't need to. ",(0,o.kt)("br",null),"\n(You can read more about props overwriting in the ",(0,o.kt)("a",{parentName:"p",href:"../comprehensive-configuration/order-of-settings-overwriting"},"ORDER OF SETTINGS OVERWRITING")," section)"),(0,o.kt)("br",null),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"-position-config-priority"},"\ud83d\udd26 Position config priority"),(0,o.kt)("p",null,"For each subsequent notification, the library looks for a notification position in the following order:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"First, it looks for a config defined in ",(0,o.kt)("inlineCode",{parentName:"li"},"notify")," payload"),(0,o.kt)("li",{parentName:"ol"},"Secondly, it looks for a global config from ",(0,o.kt)("inlineCode",{parentName:"li"},"createNotification")),(0,o.kt)("li",{parentName:"ol"},"At last, when no config is found, it uses the default behavior, which is ",(0,o.kt)("inlineCode",{parentName:"li"},"top"))),(0,o.kt)("br",null))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7d744e69.10eceafa.js b/assets/js/7d744e69.10eceafa.js new file mode 100644 index 00000000..d194b43f --- /dev/null +++ b/assets/js/7d744e69.10eceafa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[466],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return f}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),u=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=u(n),m=a,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||i;return n?r.createElement(f,o(o({ref:t},s),{},{components:n})):r.createElement(f,o({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var u=2;u<i;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5663:function(e,t,n){n.r(t),n.d(t,{assets:function(){return c},contentTitle:function(){return o},default:function(){return p},frontMatter:function(){return i},metadata:function(){return l},toc:function(){return u}});var r=n(3117),a=(n(7294),n(3905));const i={sidebar_position:1,id:"intro"},o="\ud83d\udc4b\ud83c\udffc Getting Started",l={unversionedId:"intro/intro",id:"intro/intro",title:"\ud83d\udc4b\ud83c\udffc Getting Started",description:"\ud83c\udff9 Requirements",source:"@site/docs/intro/intro.md",sourceDirName:"intro",slug:"/intro/",permalink:"/react-native-notificated/docs/intro/",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,id:"intro"},sidebar:"intro",next:{title:"\ud83d\udc23 Basic usage",permalink:"/react-native-notificated/docs/intro/basics/basic-usage"}},c={},u=[{value:"\ud83c\udff9 Requirements",id:"-requirements",level:2},{value:"\ud83d\ude80 Installation",id:"-installation",level:2},{value:"\ud83d\udd25 New Architecture",id:"-new-architecture",level:2},{value:"\ud83d\udef8 Dependencies",id:"-dependencies",level:2},{value:"\u2764\ufe0f Built With",id:"\ufe0f-built-with",level:2}],s={toc:u};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"-getting-started"},"\ud83d\udc4b\ud83c\udffc Getting Started"),(0,a.kt)("h2",{id:"-requirements"},"\ud83c\udff9 Requirements"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"react-native")," >= 0.62.0"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"reanimated")," >= 2"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"react-native-gesture-handler")," >= 1.10.3"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"typescript")," >= 4.1.0 (if you use TypeScript)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"expo")," >= 41 (if you use Expo)")),(0,a.kt)("h2",{id:"-installation"},"\ud83d\ude80 Installation"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"yarn add react-native-notificated\n")),(0,a.kt)("h2",{id:"-new-architecture"},"\ud83d\udd25 New Architecture"),(0,a.kt)("p",null,"React-native-notificated is fully compatible with React new architecture on both Android and iOS."),(0,a.kt)("h2",{id:"-dependencies"},"\ud83d\udef8 Dependencies"),(0,a.kt)("p",null,"This library requires these dependencies to be installed in your project:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"yarn add react-native-reanimated react-native-gesture-handler\n")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("strong",{parentName:"p"},"react-native-reanimated")," requires additional installation steps: ",(0,a.kt)("a",{parentName:"p",href:"https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation"},"guide here")," \ud83d\udc48")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("strong",{parentName:"p"},"react-native-gesture-handler")," requires additional installation steps: ",(0,a.kt)("a",{parentName:"p",href:"https://docs.swmansion.com/react-native-gesture-handler/docs/"},"guide here")," \ud83d\udc48")),(0,a.kt)("h2",{id:"\ufe0f-built-with"},"\u2764\ufe0f Built With"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/software-mansion/react-native-reanimated"},"react-native-reanimated")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/software-mansion/react-native-gesture-handler"},"react-native-gesture-handler")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/callstack/react-native-builder-bob"},"react-native-builder-bob"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/853d0b8d.2588f9a8.js b/assets/js/853d0b8d.2588f9a8.js new file mode 100644 index 00000000..2493a1c6 --- /dev/null +++ b/assets/js/853d0b8d.2588f9a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[90],{3769:function(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/8b63878d.57cd711b.js b/assets/js/8b63878d.57cd711b.js new file mode 100644 index 00000000..56a89fe7 --- /dev/null +++ b/assets/js/8b63878d.57cd711b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[449],{5745:function(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.7d49a32a.js b/assets/js/935f2afb.7d49a32a.js new file mode 100644 index 00000000..9ee9e7f6 --- /dev/null +++ b/assets/js/935f2afb.7d49a32a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[53],{1109:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"intro":[{"type":"link","label":"\ud83d\udc4b\ud83c\udffc Getting Started","href":"/react-native-notificated/docs/intro/","docId":"intro/intro"},{"type":"category","label":"First steps","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udc23 Basic usage","href":"/react-native-notificated/docs/intro/basics/basic-usage","docId":"intro/basics/basic-usage"},{"type":"link","label":"\ud83d\udee0 Basic configuration","href":"/react-native-notificated/docs/intro/basics/basic-configuration","docId":"intro/basics/basic-configuration"}]},{"type":"category","label":"Comprehensive configuration","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\u2699\ufe0f Global notifications settings","href":"/react-native-notificated/docs/intro/comprehensive-configuration/global-notifications-settings","docId":"intro/comprehensive-configuration/global-notifications-settings"},{"type":"link","label":"\u270f\ufe0f Order of overwriting settings","href":"/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting","docId":"intro/comprehensive-configuration/order-of-settings-overwriting"}]},{"type":"category","label":"Default variants configuration","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\ud83d\uddbc\ufe0f Default Variants","href":"/react-native-notificated/docs/intro/default-variants-config/default-variants","docId":"intro/default-variants-config/default-variants"},{"type":"link","label":"\ud83c\udf0d Global Styles Settings","href":"/react-native-notificated/docs/intro/default-variants-config/global-config","docId":"intro/default-variants-config/global-config"},{"type":"link","label":"\ud83d\udcec Single Notification Config","href":"/react-native-notificated/docs/intro/default-variants-config/props-config","docId":"intro/default-variants-config/props-config"},{"type":"link","label":"\ud83d\udccc Notification position","href":"/react-native-notificated/docs/intro/default-variants-config/position","docId":"intro/default-variants-config/position"},{"type":"link","label":"\ud83d\udccf Notification width","href":"/react-native-notificated/docs/intro/default-variants-config/width","docId":"intro/default-variants-config/width"}]},{"type":"category","label":"Animation API","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udd04 Transitions","href":"/react-native-notificated/docs/intro/animations/changing-transitions","docId":"intro/animations/changing-transitions"},{"type":"link","label":"\ud83d\udcab Custom transitions","href":"/react-native-notificated/docs/intro/animations/custom-transitions","docId":"intro/animations/custom-transitions"}]},{"type":"category","label":"Types","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udd27 Specifying default types","href":"/react-native-notificated/docs/intro/types/custom-components-examples","docId":"intro/types/custom-components-examples"}]},{"type":"link","label":"Errors handling","href":"/react-native-notificated/docs/intro/errors-handling/","docId":"intro/errors-handling/errors-handling"},{"type":"category","label":"Examples","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udd0f Default examples","href":"/react-native-notificated/docs/intro/examples/default-examples","docId":"intro/examples/default-examples"},{"type":"link","label":"\ud83d\udd8a\ufe0f Dark mode examples","href":"/react-native-notificated/docs/intro/examples/dark-mode-examples","docId":"intro/examples/dark-mode-examples"},{"type":"link","label":"\u2712\ufe0f Global config examples","href":"/react-native-notificated/docs/intro/examples/global-config-examples","docId":"intro/examples/global-config-examples"},{"type":"link","label":"\ud83d\udd8b\ufe0f Global types config examples","href":"/react-native-notificated/docs/intro/examples/global-types-config-examples","docId":"intro/examples/global-types-config-examples"},{"type":"link","label":"\ud83e\udded Custom examples","href":"/react-native-notificated/docs/intro/examples/custom-examples","docId":"intro/examples/custom-examples"},{"type":"link","label":"\u270d\ufe0f Custom components examples","href":"/react-native-notificated/docs/intro/examples/custom-components-examples","docId":"intro/examples/custom-components-examples"},{"type":"link","label":"\ud83d\udd25 Redux example","href":"/react-native-notificated/docs/intro/examples/redux-example","docId":"intro/examples/redux-example"},{"type":"link","label":"\ud83d\udced Push notifications example","href":"/react-native-notificated/docs/intro/examples/push-notifications-example","docId":"intro/examples/push-notifications-example"},{"type":"link","label":"\ud83d\udd14 Notifcation In Modal Example","href":"/react-native-notificated/docs/intro/examples/notification-in-modal-example","docId":"intro/examples/notification-in-modal-example"}]}],"api":[{"type":"link","label":"API","href":"/react-native-notificated/docs/api/apiReference","docId":"api/apiReference"},{"type":"link","label":"Types","href":"/react-native-notificated/docs/api/types","docId":"api/types"}]},"docs":{"api/apiReference":{"id":"api/apiReference","title":"API","description":"Below you will find a brief description of all the methods and properties that the library exposes.","sidebar":"api"},"api/types":{"id":"api/types","title":"Types","description":"Here are all the types referenced in the API section.","sidebar":"api"},"intro/animations/changing-transitions":{"id":"intro/animations/changing-transitions","title":"\ud83d\udd04 Transitions","description":"\ud83c\udf9b Changing transitions","sidebar":"intro"},"intro/animations/custom-transitions":{"id":"intro/animations/custom-transitions","title":"\ud83d\udcab Custom transitions","description":"\ud83d\udc69\ud83c\udffd\u200dHow the animations work under the hood","sidebar":"intro"},"intro/basics/basic-configuration":{"id":"intro/basics/basic-configuration","title":"\ud83d\udee0 Basic configuration","description":"Create Notifications","sidebar":"intro"},"intro/basics/basic-usage":{"id":"intro/basics/basic-usage","title":"\ud83d\udc23 Basic usage","description":"Create Notifications","sidebar":"intro"},"intro/comprehensive-configuration/global-notifications-settings":{"id":"intro/comprehensive-configuration/global-notifications-settings","title":"\u2699\ufe0f Global notifications settings","description":"The react-native-notificated library gives you a lot of possibilities to change the default configuration.","sidebar":"intro"},"intro/comprehensive-configuration/order-of-settings-overwriting":{"id":"intro/comprehensive-configuration/order-of-settings-overwriting","title":"\u270f\ufe0f Order of overwriting settings","description":"In the React Native Notifications library, we can pass some settings on different levels.","sidebar":"intro"},"intro/default-variants-config/default-variants":{"id":"intro/default-variants-config/default-variants","title":"\ud83d\uddbc\ufe0f Default Variants","description":"At the start, you receive from us default styling, for all 4 types of notifications (success / error / warning / info).","sidebar":"intro"},"intro/default-variants-config/global-config":{"id":"intro/default-variants-config/global-config","title":"\ud83c\udf0d Global Styles Settings","description":"\ud83c\udfa8 Default styles settings","sidebar":"intro"},"intro/default-variants-config/position":{"id":"intro/default-variants-config/position","title":"\ud83d\udccc Notification position","description":"\ud83c\udf9b Changing position","sidebar":"intro"},"intro/default-variants-config/props-config":{"id":"intro/default-variants-config/props-config","title":"\ud83d\udcec Single Notification Config","description":"Besides global settings, you can also pass props to the notification instance.","sidebar":"intro"},"intro/default-variants-config/width":{"id":"intro/default-variants-config/width","title":"\ud83d\udccf Notification width","description":"\ud83c\udf9b Changing width","sidebar":"intro"},"intro/errors-handling/errors-handling":{"id":"intro/errors-handling/errors-handling","title":"\ud83c\udd98 Errors handling","description":"You can use RN Notificated library to handle errors in your application. It\'s a very explicit and efficient way to inform users about what\u2019s going on in the application.","sidebar":"intro"},"intro/examples/custom-components-examples":{"id":"intro/examples/custom-components-examples","title":"\u270d\ufe0f Custom components examples","description":"Code has been already described step by step in the DEFAULT EXAMPLES section.","sidebar":"intro"},"intro/examples/custom-examples":{"id":"intro/examples/custom-examples","title":"\ud83e\udded Custom examples","description":"Code has been already described step by step in the DEFAULT EXAMPLES section, so I think there is no use to do it here again.","sidebar":"intro"},"intro/examples/dark-mode-examples":{"id":"intro/examples/dark-mode-examples","title":"\ud83d\udd8a\ufe0f Dark mode examples","description":"Code has been already described step by step in the DEFAULT EXAMPLES section.","sidebar":"intro"},"intro/examples/default-examples":{"id":"intro/examples/default-examples","title":"\ud83d\udd0f Default examples","description":"We prepared a lot of examples to help you understand how we can use our library.","sidebar":"intro"},"intro/examples/global-config-examples":{"id":"intro/examples/global-config-examples","title":"\u2712\ufe0f Global config examples","description":"Code has been already described step by step in the DEFAULT EXAMPLES section.","sidebar":"intro"},"intro/examples/global-types-config-examples":{"id":"intro/examples/global-types-config-examples","title":"\ud83d\udd8b\ufe0f Global types config examples","description":"Code has been already described step by step in the DEFAULT EXAMPLES section, so I think there is no use to do it here again.","sidebar":"intro"},"intro/examples/notification-in-modal-example":{"id":"intro/examples/notification-in-modal-example","title":"\ud83d\udd14 Notifcation In Modal Example","description":"Code has been already described step by step in the DEFAULT EXAMPLES section, so I think there is no use to do it here again.","sidebar":"intro"},"intro/examples/push-notifications-example":{"id":"intro/examples/push-notifications-example","title":"\ud83d\udced Push notifications example","description":"Here\'s an example of how you can handle push notifications in your application (when in foreground) using Firebase","sidebar":"intro"},"intro/examples/redux-example":{"id":"intro/examples/redux-example","title":"\ud83d\udd25 Redux example","description":"This example is quite different from the previous ones.","sidebar":"intro"},"intro/intro":{"id":"intro/intro","title":"\ud83d\udc4b\ud83c\udffc Getting Started","description":"\ud83c\udff9 Requirements","sidebar":"intro"},"intro/types/custom-components-examples":{"id":"intro/types/custom-components-examples","title":"\ud83d\udd27 Specifying default types","description":"Instead of using useNotification returned by createNotifications() you can default specify types by adding global type declarations.","sidebar":"intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/972.d80ccc86.js b/assets/js/972.d80ccc86.js new file mode 100644 index 00000000..f7ba759b --- /dev/null +++ b/assets/js/972.d80ccc86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[972],{4972:function(e,t,n){n.r(t),n.d(t,{default:function(){return i}});var a=n(7294),l=n(5999),o=n(1944),r=n(3285);function i(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/99021b66.4d07d0e2.js b/assets/js/99021b66.4d07d0e2.js new file mode 100644 index 00000000..01689e53 --- /dev/null +++ b/assets/js/99021b66.4d07d0e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[726],{3905:function(A,e,t){t.d(e,{Zo:function(){return s},kt:function(){return I}});var n=t(7294);function i(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}function o(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(A);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(A,e).enumerable}))),t.push.apply(t,n)}return t}function a(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?o(Object(t),!0).forEach((function(e){i(A,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}))}return A}function r(A,e){if(null==A)return{};var t,n,i=function(A,e){if(null==A)return{};var t,n,i={},o=Object.keys(A);for(n=0;n<o.length;n++)t=o[n],e.indexOf(t)>=0||(i[t]=A[t]);return i}(A,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(A);for(n=0;n<o.length;n++)t=o[n],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(A,t)&&(i[t]=A[t])}return i}var g=n.createContext({}),l=function(A){var e=n.useContext(g),t=e;return A&&(t="function"==typeof A?A(e):a(a({},e),A)),t},s=function(A){var e=l(A.components);return n.createElement(g.Provider,{value:e},A.children)},B="mdxType",C={inlineCode:"code",wrapper:function(A){var e=A.children;return n.createElement(n.Fragment,{},e)}},E=n.forwardRef((function(A,e){var t=A.components,i=A.mdxType,o=A.originalType,g=A.parentName,s=r(A,["components","mdxType","originalType","parentName"]),B=l(t),E=i,I=B["".concat(g,".").concat(E)]||B[E]||C[E]||o;return t?n.createElement(I,a(a({ref:e},s),{},{components:t})):n.createElement(I,a({ref:e},s))}));function I(A,e){var t=arguments,i=e&&e.mdxType;if("string"==typeof A||i){var o=t.length,a=new Array(o);a[0]=E;var r={};for(var g in e)hasOwnProperty.call(e,g)&&(r[g]=e[g]);r.originalType=A,r[B]="string"==typeof A?A:i,a[1]=r;for(var l=2;l<o;l++)a[l]=t[l];return n.createElement.apply(null,a)}return n.createElement.apply(null,t)}E.displayName="MDXCreateElement"},2033:function(A,e,t){t.r(e),t.d(e,{assets:function(){return g},contentTitle:function(){return a},default:function(){return B},frontMatter:function(){return o},metadata:function(){return r},toc:function(){return l}});var n=t(3117),i=(t(7294),t(3905));const o={sidebar_position:1},a="\ud83d\udd0f Default examples",r={unversionedId:"intro/examples/default-examples",id:"intro/examples/default-examples",title:"\ud83d\udd0f Default examples",description:"We prepared a lot of examples to help you understand how we can use our library.",source:"@site/docs/intro/examples/default-examples.md",sourceDirName:"intro/examples",slug:"/intro/examples/default-examples",permalink:"/react-native-notificated/docs/intro/examples/default-examples",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"intro",previous:{title:"\ud83c\udd98 Errors handling",permalink:"/react-native-notificated/docs/intro/errors-handling/"},next:{title:"\ud83d\udd8a\ufe0f Dark mode examples",permalink:"/react-native-notificated/docs/intro/examples/dark-mode-examples"}},g={},l=[{value:"How to use the <code>notify()</code>",id:"how-to-use-the-notify",level:2},{value:"How to use the <code>error()</code> and the <code>modify()</code>",id:"how-to-use-the-error-and-the-modify",level:2},{value:"Pass the <code>id</code> to the <code>modify()</code> method:",id:"pass-the-id-to-the-modify-method",level:3},{value:"Pass the <code>id</code> to the <code>remove()</code> method:",id:"pass-the-id-to-the-remove-method",level:3},{value:"Visualization of examples",id:"visualization-of-examples",level:2},{value:"Success notification",id:"success-notification",level:3},{value:"Error notification",id:"error-notification",level:3},{value:"Warning notification",id:"warning-notification",level:3},{value:"Info notification",id:"info-notification",level:3},{value:"Modify notification",id:"modify-notification",level:3},{value:"Before",id:"before",level:4},{value:"And after",id:"and-after",level:4},{value:"Remove notification",id:"remove-notification",level:3},{value:"Before",id:"before-1",level:4},{value:"And after ;)",id:"and-after-",level:4}],s={toc:l};function B(A){let{components:e,...o}=A;return(0,i.kt)("wrapper",(0,n.Z)({},s,o,{components:e,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"-default-examples"},"\ud83d\udd0f Default examples"),(0,i.kt)("br",null),(0,i.kt)("p",null,"We prepared a lot of examples to help you understand how we can use our library. ",(0,i.kt)("br",null),"\nFirst, let's focus on the most basic examples. It takes very little effort to make them work.",(0,i.kt)("br",null),"\nA few lines below, you will find all the code with explanations.",(0,i.kt)("br",null),"\nLet's go then!"),(0,i.kt)("h2",{id:"how-to-use-the-notify"},"How to use the ",(0,i.kt)("inlineCode",{parentName:"h2"},"notify()")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsx"},"import React, { useState } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { createNotifications, useNotificationController } from 'react-native-notificated'\nimport { SuccessButton } from '../components/basicExamples/SuccessButton'\nimport { ErrorButton } from '../components/basicExamples/ErrorButton'\nimport { WarningButton } from '../components/basicExamples/WarningButton'\nimport { InfoButton } from '../components/basicExamples/InfoButton'\nimport { ModifyButton } from '../components/basicExamples/ModifyButton'\nimport { RemoveButton } from '../components/basicExamples/RemoveButton'\nimport { styles } from './styles'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n isNotch: true,\n})\n\nexport const DefaultExamples = () => {\n const [id, setId] = useState('')\n const { notify } = useNotifications()\n const { remove, modify } = useNotificationController()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n <SuccessButton\n onPress={() =>\n setId(\n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n },\n }).id\n )\n }\n />\n <ErrorButton\n onPress={() =>\n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }\n />\n <WarningButton\n onPress={() =>\n notify('warning', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Warning',\n },\n config: {\n notificationPosition: 'center',\n },\n })\n }\n />\n <InfoButton\n onPress={() =>\n notify('info', {\n params: {\n description: 'This is where the toast text goes.',\n title: 'Info',\n },\n })\n }\n />\n <ModifyButton\n onPress={() =>\n modify(id, {\n params: {\n params: { id: id, title: 'Modified title', description: 'Modified description' },\n },\n })\n }\n />\n <RemoveButton onPress={() => remove(id)} />\n </SafeAreaView>\n )\n}\n\n")),(0,i.kt)("p",null,"At first, we need to import everything that is necessary for our component:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"React")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"useState")," - we will explain below why we need ",(0,i.kt)("inlineCode",{parentName:"p"},"useState")," in this example")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"SafeAreaView"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"createNotifications")," - to set the basic config and pull out our ",(0,i.kt)("inlineCode",{parentName:"p"},"notify()")," function")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"useNotificationController")," - to pull out ",(0,i.kt)("inlineCode",{parentName:"p"},"remove()")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"modify()")," functions (we will explain them below)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"SuccessButton")," and other buttons - are just styled ",(0,i.kt)("inlineCode",{parentName:"p"},"Text")," components which imitates our buttons:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"import React, { VFC } from 'react'\nimport { Text } from 'react-native'\nimport { styles } from '../styles'\n\ntype Props = {\nonPress: () => void\n}\n\nexport const SuccessButton: VFC<Props> = ({ onPress }) => {\n return (\n <Text style={[styles.text, styles.success]} onPress={onPress}>\n Emit success\n </Text>\n )\n}\n")))),(0,i.kt)("br",null),(0,i.kt)("br",null),(0,i.kt)("p",null,"When the imports are applied, we initiate ",(0,i.kt)("inlineCode",{parentName:"p"},"createNotifications")," and pick ",(0,i.kt)("inlineCode",{parentName:"p"},"useNotifications")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"NotificationsProvider")," from the box.",(0,i.kt)("br",null)),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"useNotifications")," - allows us to get access to the ",(0,i.kt)("inlineCode",{parentName:"li"},"notify()")," function"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotificationsProvider")," - it's a wrapper, like all others providers (ContextProvider, ApolloProvider etc.). This one is necessary to allow the library to operate within the prescribed scope. What is special here is that we don't need to wrap the scope in it. We can just put it as a self-closing component, and everything that is nested in the same wrapper as our provider will get access to our notifications.")),(0,i.kt)("br",null),(0,i.kt)("br",null),(0,i.kt)("p",null,"Inside our ",(0,i.kt)("inlineCode",{parentName:"p"},"DefaultExamples")," component we initiate ",(0,i.kt)("inlineCode",{parentName:"p"},"state")," which will hold the notification ",(0,i.kt)("inlineCode",{parentName:"p"},"ID")," for us. ",(0,i.kt)("br",null),"\nLast thing, we need to do is to unpack ",(0,i.kt)("inlineCode",{parentName:"p"},"notify()"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"remove()")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"modify()")," methods.",(0,i.kt)("br",null),"\nThose methods are crucial because:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"notify()")," - initiate every single notification. In the examples, we trigger it by ",(0,i.kt)("inlineCode",{parentName:"li"},"onPress"),", but of course, it can be called in every other context you need, for example, after data fetching or after successful sign-in."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"remove()")," - externally remove triggered notification (it's not required, in the basic usage, but worth knowing)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"modify()")," - modify triggered notification (it's not required, in the basic usage, but worth knowing)",(0,i.kt)("br",null))),(0,i.kt)("p",null,"If you need more info on how those methods works please check the ",(0,i.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/basics/basic-usage"},"BASIC USAGE")," section.",(0,i.kt)("br",null)),(0,i.kt)("p",null,"As we said above, we trigger every notification by pressing the button. All we need to pass to the ",(0,i.kt)("inlineCode",{parentName:"p"},"onPress")," event is:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"() => notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n")),(0,i.kt)("p",null,"First argument is a notification type (",(0,i.kt)("inlineCode",{parentName:"p"},"success/error/info/warning"),") and the second is an object with settings, consisting of the two parts: ",(0,i.kt)("inlineCode",{parentName:"p"},"params")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"config")," (check ",(0,i.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/default-variants-config/props-config"},"Single Notification Config"),").",(0,i.kt)("br",null),"\nOnly description props is required, but usually, it's good to have also a title. >br/>\nOur notification has been set, and it looks like that:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Error",src:t(2706).Z,width:"742",height:"212"})),(0,i.kt)("p",null,"TADAM! Magic happens!! \ud83e\udd17"),(0,i.kt)("br",null),(0,i.kt)("br",null),(0,i.kt)("h2",{id:"how-to-use-the-error-and-the-modify"},"How to use the ",(0,i.kt)("inlineCode",{parentName:"h2"},"error()")," and the ",(0,i.kt)("inlineCode",{parentName:"h2"},"modify()")),(0,i.kt)("p",null,"This is a little more complicated, but just a little (I promise!) ",(0,i.kt)("br",null)),(0,i.kt)("br",null),(0,i.kt)("p",null,"All we need to do is to get chosen notification ",(0,i.kt)("inlineCode",{parentName:"p"},"ID")," and set it in our ",(0,i.kt)("inlineCode",{parentName:"p"},"state"),".",(0,i.kt)("br",null),"\nAs you can see in the code below:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"() =>\n setId(\n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n },\n config: {\n notificationPosition: 'center',\n },\n }).id\n )\n")),(0,i.kt)("p",null,"We just wrapped ",(0,i.kt)("inlineCode",{parentName:"p"},"notify()")," in our ",(0,i.kt)("inlineCode",{parentName:"p"},"setId")," setter, and pulled ",(0,i.kt)("inlineCode",{parentName:"p"},"id")," from the object returned by ",(0,i.kt)("inlineCode",{parentName:"p"},"notify()"),".",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Now it's time to:"),(0,i.kt)("h3",{id:"pass-the-id-to-the-modify-method"},"Pass the ",(0,i.kt)("inlineCode",{parentName:"h3"},"id")," to the ",(0,i.kt)("inlineCode",{parentName:"h3"},"modify()")," method:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0}," <ModifyButton\n onPress={() =>\n modify(id, {\n params: {\n params: { id: id, title: 'Modified title', description: 'Modified description' },\n },\n })\n }\n />\n")),(0,i.kt)("p",null,"and add new settings which will overwrite those previously set in the notification (the only extra value is the ",(0,i.kt)("inlineCode",{parentName:"p"},"id")," in the ",(0,i.kt)("inlineCode",{parentName:"p"},"params")," object).",(0,i.kt)("br",null),"\nIn other words, we can easily change any notification to a completely different one. ",(0,i.kt)("br",null),"\nIn the example above we changed only the ",(0,i.kt)("inlineCode",{parentName:"p"},"title")," and the ",(0,i.kt)("inlineCode",{parentName:"p"},"description"),", but we literally can change any value described in the ",(0,i.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/default-variants-config/props-config"},"Single Notification Config")," section."),(0,i.kt)("h3",{id:"pass-the-id-to-the-remove-method"},"Pass the ",(0,i.kt)("inlineCode",{parentName:"h3"},"id")," to the ",(0,i.kt)("inlineCode",{parentName:"h3"},"remove()")," method:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript",metastring:"jsx",jsx:!0},"<RemoveButton onPress={() => remove(id)} />\n")),(0,i.kt)("p",null,"and... that's all... ",(0,i.kt)("br",null),"\nWe can simply call ",(0,i.kt)("inlineCode",{parentName:"p"},"remove()")," method and pass ",(0,i.kt)("inlineCode",{parentName:"p"},"id")," of the notification that should be manually and externally removed. ",(0,i.kt)("br",null),"\nWhy externally? Because internally (inside the notification), we have the close ",(0,i.kt)("inlineCode",{parentName:"p"},"X")," icon.",(0,i.kt)("br",null),"\nIt\u2019s simply a ",(0,i.kt)("inlineCode",{parentName:"p"},"CLOSE BUTTON")," (let\u2019s call it that) which you can use outside the notification."),(0,i.kt)("h2",{id:"visualization-of-examples"},"Visualization of examples"),(0,i.kt)("p",null,"Let's see the notifications we declared above:"),(0,i.kt)("br",null),(0,i.kt)("h3",{id:"success-notification"},"Success notification"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Success",src:t(1727).Z,width:"756",height:"222"})),(0,i.kt)("h3",{id:"error-notification"},"Error notification"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Error",src:t(2706).Z,width:"742",height:"212"})),(0,i.kt)("h3",{id:"warning-notification"},"Warning notification"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Warning",src:t(9699).Z,width:"746",height:"220"})),(0,i.kt)("h3",{id:"info-notification"},"Info notification"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Info",src:t(9610).Z,width:"748",height:"214"})),(0,i.kt)("h3",{id:"modify-notification"},"Modify notification"),(0,i.kt)("h4",{id:"before"},"Before"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Modify",src:t(1727).Z,width:"756",height:"222"})),(0,i.kt)("h4",{id:"and-after"},"And after"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Modify",src:t(1727).Z,width:"756",height:"222"})),(0,i.kt)("h3",{id:"remove-notification"},"Remove notification"),(0,i.kt)("h4",{id:"before-1"},"Before"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Modify",src:t(1727).Z,width:"756",height:"222"})),(0,i.kt)("h4",{id:"and-after-"},"And after ;)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Modify",src:t(6982).Z,width:"774",height:"228"})))}B.isMDXComponent=!0},1727:function(A,e,t){e.Z=t.p+"assets/images/border-d40e328e8fc7581aa6c0499b55bd68e9.png"},2706:function(A,e,t){e.Z=t.p+"assets/images/error-d01e51989a997747e5c6faec756e1ddb.png"},9610:function(A,e,t){e.Z=t.p+"assets/images/info-dca0aa128106f93350a83b2bfaf8c0a2.png"},6982:function(A,e){e.Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwYAAADkCAYAAAAiojPAAAAMamlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUU8kanluSkJDQAhGQEnoTRHqREkKLICBVsBGSQEKJISGo2NFFBdcuImBDV0Vsqysga0HsZRHsfVEERVkXdVEUlTchAV33lfP+c+bOd7/552+ZyZ0BQLOPK5Fko1oA5IjzpLFhQcyJySlMUidAAAYAGAmcuDyZhBUTEwnfwFD/d3l3C2pDue6osPXP8f8qOnyBjAcAMhniNL6MlwNxIwB4JU8izQOAqOAtZuRJFHgBxLpSGCDE6xQ4Q4l3K3CaEh8b1ImPZUPcAoAalcuVZgCg8QDyzHxeBrSj8QliZzFfJAZAcxTE/jwhlw+xIvZROTnTFbgMYluoL4EYxgO80r6xmfE3+2nD9rncjGGszGtQ1IJFMkk2d9b/WZr/LTnZ8iEf1rBRhdLwWEX+sIZ3sqZHKDAV4m5xWlS0otYQ94n4yroDgFKE8vAEpT5qxJOxYf0AA2JnPjc4AmIjiEPF2VGRKj4tXRTKgRiuFnSmKI8TD7E+xEsFspA4lc5W6fRYlS+0Nl3KZqn4C1zpoF+Fr0fyrASWyv4boYCjso9pFAjjkyCmQGyZL0qMglgDYidZVlyESmdsgZAdNaQjlccq4reEOFYgDgtS2sfy06WhsSr94hzZUL7YVqGIE6XCh/KE8eHK+mBneNzB+GEuWItAzEoYsiOQTYwcyoUvCA5R5o49F4gT4lR2+iR5QbHKuThFkh2j0sfNBdlhCt4cYjdZfpxqLp6YBxen0j6eLsmLiVfGiRdkcsfFKOPBV4FIwAbBgAnksKWB6SATiJq767rhm3IkFHCBFGQAAXBUMUMzkgZHxPAZBwrAHxAJgGx4XtDgqADkQ/7zMKt8OoL0wdH8wRlZoBPiHBABsuG7fHCWeNhbIngKGdE/vHNh48F4s2FTjP97foj9yrAgE6li5EMemZpDmsQQYjAxnBhKtMMNcX/cF4+Ez0DYXHAv3Hsoj6/6hE5CK+EJ4SahjXB3mqhQ+l2U40EbtB+qqkXat7XAraFNdzwI94PWoWWcgRsCR9wN+mHhAdCzO2TZqrgVVWF+Z/tvGXzza6j0yM5klDyCHEi2/X6mhr2G+7AVRa2/rY8y1rTherOHR773z/6m+nzYR3yviS3FDmPnsVPYRewYVgeY2EmsHruCHVfg4dX1dHB1DXmLHYwnC9oR/cMfV+VTUUmZc41zl/Mn5VieYGaeYuOxp0tmSUUZwjwmC34dBEyOmOc0iuni7OICgOJbo/z7essY/IYgjEtfudxGALyLIZnxleNaAHC0EwD6u6+cxRu4bVYBcLyFJ5fmKzlc8SDAfwlNuNMMgAmwALYwHxfgAXxBIAgB40A0iAfJYCqsshCucymYAeaAhaAIlIBVYD0oB1vAdrAb7AOHQB04Bk6Bc+AyaAE3wX24ejrAS9AD3oF+BEFICA2hIwaIKWKFOCAuiBfij4QgkUgskoykIhmIGJEjc5BFSAmyBilHtiHVyM/IUeQUchFpRe4ij5Eu5A3yEcVQKqqLGqPW6GjUC2WhEWg8OgXNQHPRAnQxugItQ6vQvWgtegq9jN5E29CXaC8GMHWMgZlhjpgXxsaisRQsHZNi87BirBSrwvZjDfB3vo61Yd3YB5yI03Em7ghXcDiegPPwXHwevhwvx3fjtfgZ/Dr+GO/BvxBoBCOCA8GHwCFMJGQQZhCKCKWEnYQjhLNwL3UQ3hGJRAbRhugJ92IyMZM4m7icuIl4gNhIbCW2E3tJJJIByYHkR4omcUl5pCLSRtJe0knSNVIHqU9NXc1UzUUtVC1FTaxWqFaqtkfthNo1tWdq/WQtshXZhxxN5pNnkVeSd5AbyFfJHeR+ijbFhuJHiadkUhZSyij7KWcpDyhv1dXVzdW91Seoi9QXqJepH1S/oP5Y/QNVh2pPZVMnU+XUFdRd1EbqXepbGo1mTQukpdDyaCto1bTTtEe0Pg26hpMGR4OvMV+jQqNW45rGK02yppUmS3OqZoFmqeZhzaua3VpkLWstthZXa55WhdZRrdtavdp07THa0do52su192hf1H6uQ9Kx1gnR4ess1tmuc1qnnY7RLehsOo++iL6DfpbeoUvUtdHl6Gbqluju023W7dHT0XPTS9SbqVehd1yvjYExrBkcRjZjJeMQ4xbj4wjjEawRghHLRuwfcW3Ee/2R+oH6Av1i/QP6N/U/GjANQgyyDFYb1Bk8NMQN7Q0nGM4w3Gx41rB7pO5I35G8kcUjD428Z4Qa2RvFGs022m50xajX2MQ4zFhivNH4tHG3CcMk0CTTZJ3JCZMuU7qpv6nIdJ3pSdMXTD0mi5nNLGOeYfaYGZmFm8nNtpk1m/Wb25gnmBeaHzB/aEGx8LJIt1hn0WTRY2lqOd5yjmWN5T0rspWXldBqg9V5q/fWNtZJ1kus66yf2+jbcGwKbGpsHtjSbANsc22rbG/YEe287LLsNtm12KP27vZC+wr7qw6og4eDyGGTQ+sowijvUeJRVaNuO1IdWY75jjWOj50YTpFOhU51Tq9GW45OGb169PnRX5zdnbOddzjfH6MzZtyYwjENY9642LvwXCpcbrjSXENd57vWu752c3ATuG12u+NOdx/vvsS9yf2zh6eH1GO/R5enpWeqZ6XnbS9drxiv5V4XvAneQd7zvY95f/Dx8MnzOeTzp6+jb5bvHt/nY23GCsbuGNvuZ+7H9dvm1+bP9E/13+rfFmAWwA2oCngSaBHID9wZ+Ixlx8pk7WW9CnIOkgYdCXrP9mHPZTcGY8FhwcXBzSE6IQkh5SGPQs1DM0JrQnvC3MNmhzWGE8IjwleH3+YYc3icak7POM9xc8ediaBGxEWURzyJtI+URjaMR8ePG792/IMoqyhxVF00iOZEr41+GGMTkxvz6wTihJgJFRM6Y8fEzok9H0ePmxa3J+5dfFD8yvj7CbYJ8oSmRM3EyYnVie+TgpPWJLVNHD1x7sTLyYbJouT6FFJKYsrOlN5JIZPWT+qY7D65aPKtKTZTZk65ONVwavbU49M0p3GnHU4lpCal7kn9xI3mVnF70zhplWk9PDZvA+8lP5C/jt8l8BOsETxL90tfk/48wy9jbUaXMEBYKuwWsUXloteZ4ZlbMt9nRWftyhrITso+kKOWk5pzVKwjzhKfmW4yfeb0VomDpEjSluuTuz63Rxoh3SlDZFNk9Xm68FB/RW4r/0H+ON8/vyK/b0bijMMztWeKZ16ZZT9r2axnBaEFP83GZ/NmN80xm7NwzuO5rLnb5iHz0uY1zbeYv3h+x4KwBbsXUhZmLfyt0LlwTeFfi5IWNSw2XrxgcfsPYT/UFGkUSYtuL/FdsmUpvlS0tHmZ67KNy74U84svlTiXlJZ8Ws5bfunHMT+W/TiwIn1F80qPlZtXEVeJV91aHbB69xrtNQVr2teOX1u7jrmueN1f66etv1jqVrplA2WDfENbWWRZ/UbLjas2fioXlt+sCKo4UGlUuazy/Sb+pmubAzfv32K8pWTLx62irXe2hW2rrbKuKt1O3J6/vXNH4o7zP3n9VL3TcGfJzs+7xLvadsfuPlPtWV29x2jPyhq0Rl7TtXfy3pZ9wfvq9zvu33aAcaDkIDgoP/ji59Sfbx2KONR02Ovw/l+sfqk8Qj9SXIvUzqrtqRPWtdUn17ceHXe0qcG34civTr/uOmZ2rOK43vGVJygnFp8YOFlwsrdR0th9KuNUe9O0pvunJ56+cWbCmeazEWcvnAs9d/o86/zJC34Xjl30uXj0ktelussel2uvuF858pv7b0eaPZprr3perW/xbmloHdt64lrAtVPXg6+fu8G5cflm1M3WWwm37tyefLvtDv/O87vZd1/fy7/Xf3/BA8KD4odaD0sfGT2q+t3u9wNtHm3HHwc/vvIk7sn9dl77y6eyp586FnfSOkufmT6rfu7y/FhXaFfLi0kvOl5KXvZ3F/2h/UflK9tXv/wZ+OeVnok9Ha+lrwfeLH9r8HbXX25/NfXG9D56l/Ou/31xn0Hf7g9eH85/TPr4rH/GJ9Knss92nxu+RHx5MJAzMCDhSrmDRwHFPRZNTwfgzS4AaMnw7ADvbZRJyrvgoCDK++sgAv8JK++Lg+IBwK5AABIWABAJzyibYbOCmAp7xRE+PhCgrq7DTSWydFcXpS0qvAkR+gYG3hoDQGoA4LN0YKB/08DA5x0w2LsANOYq76AKIcI7w1YnBWrpeLsVfCfK++k3OX7fA0UEbuD7/l/uMY/qugyc1gAAAIplWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAwagAwAEAAAAAQAAAOQAAAAAQVNDSUkAAABTY3JlZW5zaG90eb5fZAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MjI4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc3NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlVzZXJDb21tZW50PlNjcmVlbnNob3Q8L2V4aWY6VXNlckNvbW1lbnQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoNmyHyAAAAHGlET1QAAAACAAAAAAAAAHIAAAAoAAAAcgAAAHIAAAcMkDVrsQAABthJREFUeAHs20ERAzEMBEGZP1sR8E0dDXcYpDOfLStnd+/4ECBAgAABAgQIECDwtMAxDJ7+/X15AgQIECBAgAABAr+AYSAEAgQIECBAgAABAgTGMBABAQIECBAgQIAAAQKGgQYIECBAgAABAgQIEBjDQAQECBAgQIAAAQIECBgGGiBAgAABAgQIECBAIAH/MZABAQIECBAgQIAAAQKGgQYIECBAgAABAgQIEPBioAECBAgQIECAAAECBBJwSiQDAgQIECBAgAABAgQMAw0QIECAAAECBAgQIODFQAMECBAgQIAAAQIECCTglEgGBAgQIECAAAECBAgYBhogQIAAAQIECBAgQMCLgQYIECBAgAABAgQIEEjAKZEMCBAgQIAAAQIECBAwDDRAgAABAgQIECBAgIAXAw0QIECAAAECBAgQIJCAUyIZECBAgAABAgQIECBgGGiAAAECBAgQIECAAAEvBhogQIAAAQIECBAgQCABp0QyIECAAAECBAgQIEDAMNAAAQIECBAgQIAAAQJeDDRAgAABAgQIECBAgEACTolkQIAAAQIECBAgQICAYaABAgQIECBAgAABAgS8GGiAAAECBAgQIECAAIEEnBLJgAABAgQIECBAgAABw0ADBAgQIECAAAECBAh4MdAAAQIECBAgQIAAAQIJOCWSAQECBAgQIECAAAEChoEGCBAgQIAAAQIECBDwYqABAgQIECBAgAABAgQScEokAwIECBAgQIAAAQIEDAMNECBAgAABAgQIECDgxUADBAgQIECAAAECBAgk4JRIBgQIECBAgAABAgQIGAYaIECAAAECBAgQIEDAi4EGCBAgQIAAAQIECBBIwCmRDAgQIECAAAECBAgQMAw0QIAAAQIECBAgQICAFwMNECBAgAABAgQIECCQgFMiGRAgQIAAAQIECBAgYBhogAABAgQIECBAgAABLwYaIECAAAECBAgQIEAgAadEMiBAgAABAgQIECBAwDDQAAECBAgQIECAAAECXgw0QIAAAQIECBAgQIBAAk6JZECAAAECBAgQIECAgGGgAQIECBAgQIAAAQIEvBhogAABAgQIECBAgACBBJwSyYAAAQIECBAgQIAAAcNAAwQIECBAgAABAgQIeDHQAAECBAgQIECAAAECCTglkgEBAgQIECBAgAABAoaBBggQIECAAAECBAgQ8GKgAQIECBAgQIAAAQIEEnBKJAMCBAgQIECAAAECBAwDDRAgQIAAAQIECBAg4MVAAwQIECBAgAABAgQIJOCUSAYECBAgQIAAAQIECBgGGiBAgAABAgQIECBAwIuBBggQIECAAAECBAgQSMApkQwIECBAgAABAgQIEDAMNECAAAECBAgQIECAgBcDDRAgQIAAAQIECBAgkIBTIhkQIECAAAECBAgQIGAYaIAAAQIECBAgQIAAAS8GGiBAgAABAgQIECBAIAGnRDIgQIAAAQIECBAgQMAw0AABAgQIECBAgAABAl4MNECAAAECBAgQIECAQAJOiWRAgAABAgQIECBAgIBhoAECBAgQIECAAAECBLwYaIAAAQIECBAgQIAAgQScEsmAAAECBAgQIECAAAHDQAMECBAgQIAAAQIECHgx0AABAgQIECBAgAABAgk4JZIBAQIECBAgQIAAAQKGgQYIECBAgAABAgQIEPBioAECBAgQIECAAAECBBJwSiQDAgQIECBAgAABAgQMAw0QIECAAAECBAgQIODFQAMECBAgQIAAAQIECCTglEgGBAgQIECAAAECBAgYBhogQIAAAQIECBAgQMCLgQYIECBAgAABAgQIEEjAKZEMCBAgQIAAAQIECBAwDDRAgAABAgQIECBAgIAXAw0QIECAAAECBAgQIJCAUyIZECBAgAABAgQIECBgGGiAAAECBAgQIECAAAEvBhogQIAAAQIECBAgQCABp0QyIECAAAECBAgQIEDAMNAAAQIECBAgQIAAAQJeDDRAgAABAgQIECBAgEACTolkQIAAAQIECBAgQICAYaABAgQIECBAgAABAgS8GGiAAAECBAgQIECAAIEEnBLJgAABAgQIECBAgAABw0ADBAgQIECAAAECBAh4MdAAAQIECBAgQIAAAQIJOCWSAQECBAgQIECAAAEChoEGCBAgQIAAAQIECBDwYqABAgQIECBAgAABAgQScEokAwIECBAgQIAAAQIEDAMNECBAgAABAgQIECDgxUADBAgQIECAAAECBAgk4JRIBgQIECBAgAABAgQIGAYaIECAAAECBAgQIEDAi4EGCBAgQIAAAQIECBBIwCmRDAgQIECAAAECBAgQMAw0QIAAAQIECBAgQIDAzAcAAP//9P8HJwAABtZJREFU7dtBEQMxDARBmT9bEfBNHQ13GKQzny0rZ3fv+BAgQIAAAQIECBAg8LTAMQye/v19eQIECBAgQIAAAQK/gGEgBAIECBAgQIAAAQIExjAQAQECBAgQIECAAAEChoEGCBAgQIAAAQIECBAYw0AEBAgQIECAAAECBAgYBhogQIAAAQIECBAgQCAB/zGQAQECBAgQIECAAAEChoEGCBAgQIAAAQIECBDwYqABAgQIECBAgAABAgQScEokAwIECBAgQIAAAQIEDAMNECBAgAABAgQIECDgxUADBAgQIECAAAECBAgk4JRIBgQIECBAgAABAgQIGAYaIECAAAECBAgQIEDAi4EGCBAgQIAAAQIECBBIwCmRDAgQIECAAAECBAgQMAw0QIAAAQIECBAgQICAFwMNECBAgAABAgQIECCQgFMiGRAgQIAAAQIECBAgYBhogAABAgQIECBAgAABLwYaIECAAAECBAgQIEAgAadEMiBAgAABAgQIECBAwDDQAAECBAgQIECAAAECXgw0QIAAAQIECBAgQIBAAk6JZECAAAECBAgQIECAgGGgAQIECBAgQIAAAQIEvBhogAABAgQIECBAgACBBJwSyYAAAQIECBAgQIAAAcNAAwQIECBAgAABAgQIeDHQAAECBAgQIECAAAECCTglkgEBAgQIECBAgAABAoaBBggQIECAAAECBAgQ8GKgAQIECBAgQIAAAQIEEnBKJAMCBAgQIECAAAECBAwDDRAgQIAAAQIECBAg4MVAAwQIECBAgAABAgQIJOCUSAYECBAgQIAAAQIECBgGGiBAgAABAgQIECBAwIuBBggQIECAAAECBAgQSMApkQwIECBAgAABAgQIEDAMNECAAAECBAgQIECAgBcDDRAgQIAAAQIECBAgkIBTIhkQIECAAAECBAgQIGAYaIAAAQIECBAgQIAAAS8GGiBAgAABAgQIECBAIAGnRDIgQIAAAQIECBAgQMAw0AABAgQIECBAgAABAl4MNECAAAECBAgQIECAQAJOiWRAgAABAgQIECBAgIBhoAECBAgQIECAAAECBLwYaIAAAQIECBAgQIAAgQScEsmAAAECBAgQIECAAAHDQAMECBAgQIAAAQIECHgx0AABAgQIECBAgAABAgk4JZIBAQIECBAgQIAAAQKGgQYIECBAgAABAgQIEPBioAECBAgQIECAAAECBBJwSiQDAgQIECBAgAABAgQMAw0QIECAAAECBAgQIODFQAMECBAgQIAAAQIECCTglEgGBAgQIECAAAECBAgYBhogQIAAAQIECBAgQMCLgQYIECBAgAABAgQIEEjAKZEMCBAgQIAAAQIECBAwDDRAgAABAgQIECBAgIAXAw0QIECAAAECBAgQIJCAUyIZECBAgAABAgQIECBgGGiAAAECBAgQIECAAAEvBhogQIAAAQIECBAgQCABp0QyIECAAAECBAgQIEDAMNAAAQIECBAgQIAAAQJeDDRAgAABAgQIECBAgEACTolkQIAAAQIECBAgQICAYaABAgQIECBAgAABAgS8GGiAAAECBAgQIECAAIEEnBLJgAABAgQIECBAgAABw0ADBAgQIECAAAECBAh4MdAAAQIECBAgQIAAAQIJOCWSAQECBAgQIECAAAEChoEGCBAgQIAAAQIECBDwYqABAgQIECBAgAABAgQScEokAwIECBAgQIAAAQIEDAMNECBAgAABAgQIECDgxUADBAgQIECAAAECBAgk4JRIBgQIECBAgAABAgQIGAYaIECAAAECBAgQIEDAi4EGCBAgQIAAAQIECBBIwCmRDAgQIECAAAECBAgQMAw0QIAAAQIECBAgQICAFwMNECBAgAABAgQIECCQgFMiGRAgQIAAAQIECBAgYBhogAABAgQIECBAgAABLwYaIECAAAECBAgQIEAgAadEMiBAgAABAgQIECBAwDDQAAECBAgQIECAAAECXgw0QIAAAQIECBAgQIBAAk6JZECAAAECBAgQIECAgGGgAQIECBAgQIAAAQIEvBhogAABAgQIECBAgACBBJwSyYAAAQIECBAgQIAAAcNAAwQIECBAgAABAgQIeDHQAAECBAgQIECAAAECCTglkgEBAgQIECBAgAABAoaBBggQIECAAAECBAgQ8GKgAQIECBAgQIAAAQIEEnBKJAMCBAgQIECAAAECBAwDDRAgQIAAAQIECBAg4MVAAwQIECBAgAABAgQIJOCUSAYECBAgQIAAAQIECBgGGiBAgAABAgQIECBAwIuBBggQIECAAAECBAgQSMApkQwIECBAgAABAgQIEDAMNECAAAECBAgQIECAwMwHujpqxlkZMCUAAAAASUVORK5CYII="},9699:function(A,e,t){e.Z=t.p+"assets/images/warning-e3ec3db1438e052479cc7f2f421e5c88.png"}}]); \ No newline at end of file diff --git a/assets/js/9bf77f4a.2533e3e0.js b/assets/js/9bf77f4a.2533e3e0.js new file mode 100644 index 00000000..2a2bfac4 --- /dev/null +++ b/assets/js/9bf77f4a.2533e3e0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[931],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return f}});var o=n(7294);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 r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,a=function(e,t){if(null==e)return{};var n,o,a={},r=Object.keys(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),m=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=m(e.components);return o.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=m(n),d=a,f=u["".concat(l,".").concat(d)]||u[d]||p[d]||r;return n?o.createElement(f,i(i({ref:t},c),{},{components:n})):o.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var m=2;m<r;m++)i[m]=n[m];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}d.displayName="MDXCreateElement"},1160:function(e,t,n){n.r(t),n.d(t,{assets:function(){return l},contentTitle:function(){return i},default:function(){return u},frontMatter:function(){return r},metadata:function(){return s},toc:function(){return m}});var o=n(3117),a=(n(7294),n(3905));const r={sidebar_position:6},i="\u270d\ufe0f Custom components examples",s={unversionedId:"intro/examples/custom-components-examples",id:"intro/examples/custom-components-examples",title:"\u270d\ufe0f Custom components examples",description:"Code has been already described step by step in the DEFAULT EXAMPLES section.",source:"@site/docs/intro/examples/custom-components-examples.md",sourceDirName:"intro/examples",slug:"/intro/examples/custom-components-examples",permalink:"/react-native-notificated/docs/intro/examples/custom-components-examples",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"intro",previous:{title:"\ud83e\udded Custom examples",permalink:"/react-native-notificated/docs/intro/examples/custom-examples"},next:{title:"\ud83d\udd25 Redux example",permalink:"/react-native-notificated/docs/intro/examples/redux-example"}},l={},m=[{value:"Custom modal - advertisement",id:"custom-modal---advertisement",level:2},{value:"Custom modal - info",id:"custom-modal---info",level:2},{value:"Styles for both custom modals",id:"styles-for-both-custom-modals",level:2},{value:"Main component",id:"main-component",level:2},{value:"Implement close button",id:"implement-close-button",level:3},{value:"Advertisement",id:"advertisement",level:3},{value:"Custom info",id:"custom-info",level:3}],c={toc:m};function u(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\ufe0f-custom-components-examples"},"\u270d\ufe0f Custom components examples"),(0,a.kt)("br",null),(0,a.kt)("p",null,"Code has been already described step by step in the ",(0,a.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/examples/default-examples"},"DEFAULT EXAMPLES")," section.",(0,a.kt)("br",null),"\nSo I think there is no need to do it here again.",(0,a.kt)("br",null)),(0,a.kt)("p",null,"In custom components examples, we will create our own modal, and pass it to the library.",(0,a.kt)("br",null),"\nThanks to this, we will obtain the maximum possibility of customization, without losing library advantages."),(0,a.kt)("p",null,"Let's create our custom components:"),(0,a.kt)("h2",{id:"custom-modal---advertisement"},"Custom modal - advertisement"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-tsx"},"import React from 'react'\nimport { Image, Text, View } from 'react-native'\nimport { styles } from './styles'\n\ntype Props = {\n customTitle: string\n customDescription: string\n}\n\nexport const Advertisement = ({ customTitle, customDescription }: Props) => {\n return (\n <View style={styles.advertisement_container}>\n <Text style={styles.advertisement_title}>{customTitle}</Text>\n <Image source={require('../../../../assets/doughnut.png')} style={styles.advertisement_image} />\n <Text style={styles.advertisement_description}>{customDescription}</Text>\n </View>\n )\n}\n\n")),(0,a.kt)("h2",{id:"custom-modal---info"},"Custom modal - info"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-tsx"},"import { Image, Text, View } from 'react-native'\nimport React from 'react'\nimport { styles } from './styles'\n\ntype Props = {\n customTitle: string\n}\n\nexport const CustomInfo = ({ customTitle }: Props) => {\n return (\n <View style={styles.info_container}>\n <Text style={styles.info_title}>{customTitle}</Text>\n <Image source={require('../../../../assets/in_progress.png')} style={styles.info_image} />\n </View>\n )\n}\n\n")),(0,a.kt)("h2",{id:"styles-for-both-custom-modals"},"Styles for both custom modals"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n advertisement_container: {\n flex: 1,\n backgroundColor: '#f0fffe',\n borderRadius: 20,\n borderWidth: 2,\n borderColor: '#DCAE96',\n justifyContent: 'center',\n alignItems: 'center',\n padding: 30,\n },\n advertisement_title: {\n fontSize: 20,\n fontWeight: 'bold',\n },\n advertisement_description: {\n fontSize: 15,\n textAlign: 'center',\n },\n advertisement_image: {\n resizeMode: 'center',\n height: 230,\n },\n info_container: {\n width: 360,\n height: 360,\n borderRadius: 180,\n backgroundColor: '#FFFFFF',\n borderWidth: 10,\n borderColor: '#000000',\n justifyContent: 'center',\n alignItems: 'center',\n padding: 30,\n },\n info_title: {\n fontSize: 24,\n fontWeight: 'bold',\n marginBottom: 20,\n },\n info_image: {\n width: 150,\n height: 150,\n },\n})\n\n")),(0,a.kt)("br",null),(0,a.kt)("p",null,"As you can see they're just very simple modals. ",(0,a.kt)("br",null),"\nWhat we need to do next is to pass those modals to the library structure.",(0,a.kt)("br",null),"\nPlease notice, that we pass props to those components. I will explain how to do it in the main component below."),(0,a.kt)("h2",{id:"main-component"},"Main component"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-tsx"},"import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { styles } from './styles'\nimport { Advertisement } from '../components/customVariants/Advertisement'\nimport { CustomInfo } from '../components/customVariants/CustomInfo'\nimport { CustomCaseButton } from '../components/customVariants/CustomCaseButton'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n variants: {\n advertisement: {\n component: Advertisement,\n config: {\n notificationPosition: 'top',\n duration: 5000,\n },\n },\n custom_info: {\n component: CustomInfo,\n config: {\n duration: 2000,\n },\n },\n },\n isNotch: true,\n})\n\nexport const CustomCaseExamples = () => {\n const { notify } = useNotifications()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n\n <CustomCaseButton\n buttonTitle=\"Advertisement\"\n onPress={() =>\n notify('advertisement', {\n params: {\n customTitle: 'The best Doughnuts in Krakow',\n customDescription:\n 'Doughnuts are usually deep fried from a flour dough, but other types of batters can also be used. Various toppings and flavorings are used for different types, such as sugar, chocolate or maple glazing. Doughnuts may also include water, leavening, eggs, milk, sugar, oil, shortening, and natural or artificial flavors.',\n },\n config: {\n duration: 2000,\n },\n })\n }\n />\n\n <CustomCaseButton\n buttonTitle=\"Custom Info\"\n onPress={() =>\n notify('custom_info', {\n params: {\n customTitle: 'In progress',\n },\n config: {\n duration: 3000,\n },\n })\n }\n />\n </SafeAreaView>\n )\n}\n\n")),(0,a.kt)("br",null),(0,a.kt)("p",null,"The first step is to initialize process using ",(0,a.kt)("inlineCode",{parentName:"p"},"createNotifications"),".",(0,a.kt)("br",null),"\nIn the settings, we can use property ",(0,a.kt)("inlineCode",{parentName:"p"},"variants"),".",(0,a.kt)("br",null),"\nThis is the place where we will pass our components. Let's take a closer look at it:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-tsx"},"const { useNotifications, NotificationsProvider } = createNotifications({\n variants: {\n advertisement: {\n component: Advertisement,\n config: {\n notificationPosition: 'top',\n duration: 5000,\n },\n },\n custom_info: {\n component: CustomInfo,\n config: {\n duration: 2000,\n },\n },\n },\n isNotch: true,\n})\n\n")),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"variants")," is an object with the keys, which are the names of the variants we want to create.",(0,a.kt)("br",null),"\nIn this case, we want to create advertisement, and the custom info, so I decided to use those names literally.",(0,a.kt)("br",null),"\nYou can name your variant whatever you like. It can be 'modal' / 'lol' / 'my_precious_variant' etc. It depends on you. ",(0,a.kt)("br",null)),(0,a.kt)("p",null,"Every custom variant in also an object where we need to pass our custom component, and optionally ",(0,a.kt)("inlineCode",{parentName:"p"},"config"),". ",(0,a.kt)("br",null),"\nLet's recall properties that ",(0,a.kt)("inlineCode",{parentName:"p"},"config")," can take:"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"Name"),(0,a.kt)("th",{parentName:"tr",align:null},"Type"),(0,a.kt)("th",{parentName:"tr",align:null},"Default"),(0,a.kt)("th",{parentName:"tr",align:null},"Description"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"duration"),(0,a.kt)("td",{parentName:"tr",align:null},"Number"),(0,a.kt)("td",{parentName:"tr",align:null},"3000"),(0,a.kt)("td",{parentName:"tr",align:null},"Use this property to set how long the notifications should be displayed on the screen. Value expressed in milliseconds")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"notificationPosition"),(0,a.kt)("td",{parentName:"tr",align:null},"'top' / 'center' / 'bottom'"),(0,a.kt)("td",{parentName:"tr",align:null},"'top'"),(0,a.kt)("td",{parentName:"tr",align:null},"Set where the notifications should appear on the screen. You can choose one of three default options: top / center / bottom. To read more about the notification position please go to the ",(0,a.kt)("a",{parentName:"td",href:"../default-variants-config/position"},"NOTIFICATION POSITION")," section.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"animationConfig"),(0,a.kt)("td",{parentName:"tr",align:null},"Object"),(0,a.kt)("td",{parentName:"tr",align:null},"SlideInLeftSlideOutRight"),(0,a.kt)("td",{parentName:"tr",align:null},"Property responsible for the notification animation. You can set one of the animations prepared by us, or make your own config. To read more about the animation settings please go to the ",(0,a.kt)("a",{parentName:"td",href:"../animations/changing-transitions"},"ANIMATIONS SETTINGS")," section.")))),(0,a.kt)("br",null),(0,a.kt)("p",null,"Now, our custom modals are 'injected' inside the library, and we can use them, exactly in the same way as we did with default notifications (",(0,a.kt)("inlineCode",{parentName:"p"},"success")," / ",(0,a.kt)("inlineCode",{parentName:"p"},"error")," / ",(0,a.kt)("inlineCode",{parentName:"p"},"info")," / ",(0,a.kt)("inlineCode",{parentName:"p"},"warning"),")."),(0,a.kt)("p",null,"What is important, that when we pass the name of the notification, then instead of the ",(0,a.kt)("inlineCode",{parentName:"p"},"success")," / ",(0,a.kt)("inlineCode",{parentName:"p"},"error")," / ",(0,a.kt)("inlineCode",{parentName:"p"},"info")," / ",(0,a.kt)("inlineCode",{parentName:"p"},"warning")," we used before, now we need to pass name we declared in the ",(0,a.kt)("inlineCode",{parentName:"p"},"variants"),". In my case they are the ",(0,a.kt)("inlineCode",{parentName:"p"},"advertisement")," and the ",(0,a.kt)("inlineCode",{parentName:"p"},"custom_info"),"\nIt's a first argument we pass to the ",(0,a.kt)("inlineCode",{parentName:"p"},"notify"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-jsx"},"<CustomCaseButton\n buttonTitle=\"Advertisement\"\n onPress={() =>\n notify('advertisement', {\n params: {\n customTitle: 'The best Doughnuts in Krakow',\n customDescription:\n 'Doughnuts are usually deep fried from a flour dough, but other types of batters can also be used. Various toppings and flavorings are used for different types, such as sugar, chocolate or maple glazing. Doughnuts may also include water, leavening, eggs, milk, sugar, oil, shortening, and natural or artificial flavors.',\n },\n config: {\n duration: 2000,\n },\n })\n }\n/>\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-jsx"},"<CustomCaseButton\n buttonTitle=\"Custom Info\"\n onPress={() =>\n notify('custom_info', {\n params: {\n customTitle: 'In progress',\n },\n config: {\n duration: 3000,\n },\n })\n }\n/>\n")),(0,a.kt)("p",null,"After that we have ",(0,a.kt)("inlineCode",{parentName:"p"},"params"),".",(0,a.kt)("br",null),"\nThey are just literally the props we pass to our custom modal. ",(0,a.kt)("br",null),"\nIn the ",(0,a.kt)("inlineCode",{parentName:"p"},"CustomInfo")," we require only ",(0,a.kt)("inlineCode",{parentName:"p"},"customTitle"),", so we just need to pass this one to the ",(0,a.kt)("inlineCode",{parentName:"p"},"params"),".",(0,a.kt)("br",null)),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"config")," is still have the 3 properties we recall above.\nWe can pass the ",(0,a.kt)("inlineCode",{parentName:"p"},"config")," when we're 'injecting' our custom modal to the library, or when we call it. It depends on you. ",(0,a.kt)("br",null),"\nPlease remember that the ",(0,a.kt)("inlineCode",{parentName:"p"},"config")," in the ",(0,a.kt)("inlineCode",{parentName:"p"},"notify")," (when we call it) overwrites ",(0,a.kt)("inlineCode",{parentName:"p"},"config")," that we declared in the 'injection' process.",(0,a.kt)("br",null)),(0,a.kt)("h3",{id:"implement-close-button"},"Implement close button"),(0,a.kt)("p",null,"In case you need to implement close button in your custom component, here is the code showing implementation in out 'CustomInfo' notification:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-tsx"},"import { Image, Text, View } from 'react-native'\nimport { TouchableOpacity } from 'react-native-gesture-handler'\nimport React from 'react'\nimport { styles } from './styles'\nimport { useNotificationController } from 'react-native-notificated'\n\ntype Props = {\n customTitle: string\n}\n\nexport const CustomInfo = ({ customTitle }: Props) => {\n const { remove } = useNotificationController()\n\n return (\n <View style={styles.info_container}>\n <Text style={styles.info_title}>{customTitle}</Text>\n <Image source={require('../../../../assets/in_progress.png')} style={styles.info_image} />\n <TouchableOpacity\n onPress={() => {\n remove()\n }}>\n <Image source={'../../../../assets/close-regularMode.png'} style={styles.icon} />\n </TouchableOpacity>\n </View>\n )\n}\n\n")),(0,a.kt)("p",null,"There are a few new things along with the previously shown code.\nFirst, we need to add two imports: a 'TouchableOpacity' from react-native-gesture-handler and 'useNotificationController' hook provided with react-native-notificated.\n'useNotificationController' hook returns method 'remove' which can be applied in our custom notification.\nThe only thing that has to be done to implement the close button is to add a close button in our return part of the component and invoke remove() on the press event."),(0,a.kt)("p",null,"Now let's take a look how our examples looks like:"),(0,a.kt)("h3",{id:"advertisement"},"Advertisement"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Success",src:n(1303).Z,width:"742",height:"946"})),(0,a.kt)("h3",{id:"custom-info"},"Custom info"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Error",src:n(8511).Z,width:"730",height:"754"})))}u.isMDXComponent=!0},8511:function(e,t,n){t.Z=n.p+"assets/images/custom_info-c995f34a9075f2f5857f847a2e04658a.png"},1303:function(e,t,n){t.Z=n.p+"assets/images/doughnuts-2d879832c2d037ce9a01ad207fd9841a.png"}}]); \ No newline at end of file diff --git a/assets/js/b3722853.98cb7799.js b/assets/js/b3722853.98cb7799.js new file mode 100644 index 00000000..cab893fc --- /dev/null +++ b/assets/js/b3722853.98cb7799.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[386],{3905:function(e,r,t){t.d(r,{Zo:function(){return u},kt:function(){return m}});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?i(Object(t),!0).forEach((function(r){o(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function c(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)t=i[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)t=i[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),s=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},u=function(e){var r=s(e.components);return n.createElement(l.Provider,{value:r},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(t),d=o,m=p["".concat(l,".").concat(d)]||p[d]||f[d]||i;return t?n.createElement(m,a(a({ref:r},u),{},{components:t})):n.createElement(m,a({ref:r},u))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=d;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=t[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,t)}d.displayName="MDXCreateElement"},4721:function(e,r,t){t.r(r),t.d(r,{assets:function(){return l},contentTitle:function(){return a},default:function(){return p},frontMatter:function(){return i},metadata:function(){return c},toc:function(){return s}});var n=t(3117),o=(t(7294),t(3905));const i={sidebar_position:1},a="\ud83c\udd98 Errors handling",c={unversionedId:"intro/errors-handling/errors-handling",id:"intro/errors-handling/errors-handling",title:"\ud83c\udd98 Errors handling",description:"You can use RN Notificated library to handle errors in your application. It's a very explicit and efficient way to inform users about what\u2019s going on in the application.",source:"@site/docs/intro/errors-handling/errors-handling.md",sourceDirName:"intro/errors-handling",slug:"/intro/errors-handling/",permalink:"/react-native-notificated/docs/intro/errors-handling/",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"intro",previous:{title:"\ud83d\udd27 Specifying default types",permalink:"/react-native-notificated/docs/intro/types/custom-components-examples"},next:{title:"\ud83d\udd0f Default examples",permalink:"/react-native-notificated/docs/intro/examples/default-examples"}},l={},s=[],u={toc:s};function p(e){let{components:r,...t}=e;return(0,o.kt)("wrapper",(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"-errors-handling"},"\ud83c\udd98 Errors handling"),(0,o.kt)("p",null,"You can use RN Notificated library to handle errors in your application. It's a very explicit and efficient way to inform users about what\u2019s going on in the application."),(0,o.kt)("p",null,"Feel free to check our article ",(0,o.kt)("a",{parentName:"p",href:"https://thewidlarzgroup.com/errors-handling-with-notificated/"},(0,o.kt)("strong",{parentName:"a"},(0,o.kt)("em",{parentName:"strong"},'"Errors Handling with RN Notificated"')))," to get more information about this topic."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b935233d.b8b93cb4.js b/assets/js/b935233d.b8b93cb4.js new file mode 100644 index 00000000..67cda9ae --- /dev/null +++ b/assets/js/b935233d.b8b93cb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[353],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return g}});var i=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,i,o=function(e,t){if(null==e)return{};var n,i,o={},r=Object.keys(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=i.createContext({}),c=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},f="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),f=c(n),d=o,g=f["".concat(s,".").concat(d)]||f[d]||p[d]||r;return n?i.createElement(g,a(a({ref:t},u),{},{components:n})):i.createElement(g,a({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,a=new Array(r);a[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[f]="string"==typeof e?e:o,a[1]=l;for(var c=2;c<r;c++)a[c]=n[c];return i.createElement.apply(null,a)}return i.createElement.apply(null,n)}d.displayName="MDXCreateElement"},137:function(e,t,n){n.r(t),n.d(t,{assets:function(){return s},contentTitle:function(){return a},default:function(){return f},frontMatter:function(){return r},metadata:function(){return l},toc:function(){return c}});var i=n(3117),o=(n(7294),n(3905));const r={sidebar_position:2},a="\u270f\ufe0f Order of overwriting settings",l={unversionedId:"intro/comprehensive-configuration/order-of-settings-overwriting",id:"intro/comprehensive-configuration/order-of-settings-overwriting",title:"\u270f\ufe0f Order of overwriting settings",description:"In the React Native Notifications library, we can pass some settings on different levels.",source:"@site/docs/intro/comprehensive-configuration/order-of-settings-overwriting.md",sourceDirName:"intro/comprehensive-configuration",slug:"/intro/comprehensive-configuration/order-of-settings-overwriting",permalink:"/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"intro",previous:{title:"\u2699\ufe0f Global notifications settings",permalink:"/react-native-notificated/docs/intro/comprehensive-configuration/global-notifications-settings"},next:{title:"\ud83d\uddbc\ufe0f Default Variants",permalink:"/react-native-notificated/docs/intro/default-variants-config/default-variants"}},s={},c=[{value:"Global range (for all notifications):",id:"global-range-for-all-notifications",level:2},{value:"Notification type range (for example for all success notifications):",id:"notification-type-range-for-example-for-all-success-notifications",level:2},{value:"Instance range (for the single notification):",id:"instance-range-for-the-single-notification",level:2},{value:"Conclusion",id:"conclusion",level:2}],u={toc:c};function f(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\ufe0f-order-of-overwriting-settings"},"\u270f\ufe0f Order of overwriting settings"),(0,o.kt)("br",null),(0,o.kt)("p",null,"In the React Native Notifications library, we can pass some settings on different levels. ",(0,o.kt)("br",null),"\nWhen we go deeper and the range of the settings is narrower, the importance of the setting is higher. ",(0,o.kt)("br",null),"\nFor example, we can set the ",(0,o.kt)("inlineCode",{parentName:"p"},"titleColor")," of the notification in the: ",(0,o.kt)("br",null)),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"global range (for all notifications)"),(0,o.kt)("li",{parentName:"ul"},"notification type range (for example for all errors)"),(0,o.kt)("li",{parentName:"ul"},"instance range (for the single notification)")),(0,o.kt)("p",null,"Instance range overwrites notification type range and global range. Notification type range overwrites global range.",(0,o.kt)("br",null)),(0,o.kt)("p",null,"Let's consider the case where we set all possible options for single ",(0,o.kt)("inlineCode",{parentName:"p"},"success")," notification on all depth levels: ",(0,o.kt)("br",null),"\n(all the props for other notifications are the same)",(0,o.kt)("br",null)),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { createNotifications, SlideInLeftSlideOutRight } from 'react-native-notificated'\nimport { styles } from './styles'\nimport { SuccessButton } from '../components/basicExamples/SuccessButton'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n isNotch: true,\n duration: 3000,\n notificationPosition: 'top',\n animationConfig: SlideInLeftSlideOutRight,\n defaultStylesSettings: {\n darkMode: false,\n globalConfig: {\n titleSize: 20,\n titleColor: '#4B0082',\n descriptionSize: 12,\n descriptionColor: '#4B0082',\n bgColor: '#FFFFF0',\n borderType: 'accent',\n borderRadius: 25,\n accentColor: '#B0E0E6',\n borderWidth: 3,\n multiline: 5,\n defaultIconType: 'color',\n leftIconSource: require('../../assets/custom-icon.png'),\n },\n successConfig: {\n titleSize: 16,\n titleColor: '#4C0',\n descriptionSize: 11,\n descriptionColor: '#4C0',\n bgColor: '#FFFFF0',\n borderType: 'accent',\n borderRadius: 25,\n accentColor: '#B0E0E6',\n borderWidth: 3,\n multiline: 5,\n defaultIconType: 'color',\n leftIconSource: require('../../assets/custom-icon.png'),\n },\n },\n})\n\nexport const Example = () => {\n const { notify } = useNotifications()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n <SuccessButton\n onPress={() =>\n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n style: {\n titleSize: 24,\n titleColor: '#4B0082',\n descriptionSize: 20,\n descriptionColor: '#4B0082',\n bgColor: '#FFFFF0',\n borderType: 'border',\n borderRadius: 15,\n accentColor: '#B0E0E6',\n borderWidth: 1,\n multiline: 3,\n defaultIconType: 'monochromatic',\n leftIconSource: require('../../assets/custom-icon.png'),\n },\n },\n config: {\n notificationPosition: 'center',\n animationConfig: SlideInLeftSlideOutRight,\n duration: 100,\n },\n })\n }\n />\n </SafeAreaView>\n )\n}\n")),(0,o.kt)("p",null,"We can divide them as above for the three depth levels. Let's take a look at what properties can we pass at different levels:"),(0,o.kt)("h2",{id:"global-range-for-all-notifications"},"Global range (for all notifications):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"const { useNotifications, NotificationsProvider } = createNotifications({\n isNotch: true,\n duration: 30,\n notificationPosition: 'top',\n notificationWidth: 400,\n animationConfig: SlideInLeftSlideOutRight,\n defaultStylesSettings: {\n darkMode: false,\n globalConfig: {\n titleSize: 20,\n titleColor: '#4B0082',\n descriptionSize: 12,\n descriptionColor: '#4B0082',\n bgColor: '#FFFFF0',\n borderType: 'accent',\n borderRadius: 25,\n accentColor: '#B0E0E6',\n borderWidth: 3,\n multiline: 5,\n defaultIconType: 'color',\n leftIconSource: require('../../assets/custom-icon.png'),\n },\n },\n})\n")),(0,o.kt)("p",null,"All those properties:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"isNotch"),(0,o.kt)("li",{parentName:"ul"},"duration"),(0,o.kt)("li",{parentName:"ul"},"notificationPosition"),(0,o.kt)("li",{parentName:"ul"},"notificationWidth"),(0,o.kt)("li",{parentName:"ul"},"animationConfig")),(0,o.kt)("p",null,"(defaultStylesSettings)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"darkMode"),(0,o.kt)("li",{parentName:"ul"},"globalConfig (with all the styles properties)")),(0,o.kt)("p",null,"Can be set up for all notifications in the app. Some of them can be set up only here:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"isNotch"),(0,o.kt)("li",{parentName:"ul"},"darkMode")),(0,o.kt)("p",null,"The rest can be overwritten at lower levels - notification type range (for example, for all errors) and instance range (for the single notification)."),(0,o.kt)("h2",{id:"notification-type-range-for-example-for-all-success-notifications"},"Notification type range (for example for all success notifications):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"const { useNotifications, NotificationsProvider } = createNotifications({\n defaultStylesSettings: {\n successConfig: {\n titleSize: 16,\n titleColor: '#4C0',\n descriptionSize: 11,\n descriptionColor: '#4C0',\n bgColor: '#FFFFF0',\n borderType: 'accent',\n borderRadius: 25,\n accentColor: '#B0E0E6',\n borderWidth: 3,\n multiline: 5,\n defaultIconType: 'color',\n leftIconSource: require('../../assets/custom-icon.png'),\n },\n errorConfig: {},\n warningConfig: {},\n infoConfig: {},\n },\n})\n")),(0,o.kt)("p",null,"On the second level we can set only style properties for the different notification types:"),(0,o.kt)("p",null,"(defaultStylesSettings)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"successConfig"),(0,o.kt)("li",{parentName:"ul"},"errorConfig"),(0,o.kt)("li",{parentName:"ul"},"warningConfig"),(0,o.kt)("li",{parentName:"ul"},"infoConfig")),(0,o.kt)("p",null,"Properties set in these ",(0,o.kt)("inlineCode",{parentName:"p"},"configs")," will affect all notifications of a given type. All of them have the same properties inside.",(0,o.kt)("br",null),"\nThis level overwrites only style properties previously set at the global range. You cannot overwrite here other global properties. ",(0,o.kt)("br",null),"\nPlease notice that, if you set ",(0,o.kt)("inlineCode",{parentName:"p"},"globalConfig")," styles (for all notifications), and then you set ",(0,o.kt)("inlineCode",{parentName:"p"},"successConfig"),", then all ",(0,o.kt)("inlineCode",{parentName:"p"},"success")," type notifications will take style config from the ",(0,o.kt)("inlineCode",{parentName:"p"},"successConfig"),", but other notification types will take it from the ",(0,o.kt)("inlineCode",{parentName:"p"},"globalConfig"),"(unless you set their notification type style config for them).",(0,o.kt)("br",null),"\nAs you can see Notification types have a smaller range than global, but they are more important overall."),(0,o.kt)("h2",{id:"instance-range-for-the-single-notification"},"Instance range (for the single notification):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"<SuccessButton\n onPress={() =>\n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n style: {\n titleSize: 24,\n titleColor: '#4B0082',\n descriptionSize: 20,\n descriptionColor: '#4B0082',\n bgColor: '#FFFFF0',\n borderType: 'border',\n borderRadius: 15,\n accentColor: '#B0E0E6',\n borderWidth: 1,\n multiline: 3,\n defaultIconType: 'monochromatic',\n leftIconSource: require('../../assets/custom-icon.png'),\n },\n },\n config: {\n notificationPosition: 'center',\n animationConfig: SlideInLeftSlideOutRight,\n duration: 100,\n },\n })\n }\n/>\n")),(0,o.kt)("p",null,"All those properties:"),(0,o.kt)("p",null,"(params)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"description"),(0,o.kt)("li",{parentName:"ul"},"title"),(0,o.kt)("li",{parentName:"ul"},"style")),(0,o.kt)("p",null,"(config)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"notificationPosition"),(0,o.kt)("li",{parentName:"ul"},"notificationWidth"),(0,o.kt)("li",{parentName:"ul"},"animationConfig"),(0,o.kt)("li",{parentName:"ul"},"duration")),(0,o.kt)("p",null,"Can be set up for one single notification when we initiate it. Some of them can be set only here:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"description"),(0,o.kt)("li",{parentName:"ul"},"title")),(0,o.kt)("p",null,"What makes sense, because every notification should have its reason. ",(0,o.kt)("br",null),"\nIf we set some property here, it has the highest level of importance (overwrites the same property in the Global range and Notification type range), but only for this single notification."),(0,o.kt)("h2",{id:"conclusion"},"Conclusion"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"In other words, if the President says something, it affects all the people in the country.")),(0,o.kt)("p",null,"But seriously, we can listen to him, but the president of our town can easily change his opinion and then his words will probably be more valuable for us."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"If the president of our city says something, that will affect all the people in the city (smaller range, stronger attention).")),(0,o.kt)("p",null,"But then again, if our mother challenges the President\u2019s opinion, then the latter become irrelevant :)"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Truth be told, your mother probably has an impact on nobody else but yourself, but she definitely attracts your greatest attention! "),"."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b999a6e4.b51978a6.js b/assets/js/b999a6e4.b51978a6.js new file mode 100644 index 00000000..a3b96f5e --- /dev/null +++ b/assets/js/b999a6e4.b51978a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[927],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return f}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),d=r,f=u["".concat(s,".").concat(d)]||u[d]||m[d]||i;return n?a.createElement(f,o(o({ref:t},p),{},{components:n})):a.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var c=2;c<i;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},4902:function(e,t,n){n.r(t),n.d(t,{assets:function(){return s},contentTitle:function(){return o},default:function(){return u},frontMatter:function(){return i},metadata:function(){return l},toc:function(){return c}});var a=n(3117),r=(n(7294),n(3905));const i={sidebar_position:2,title:"Types"},o="\ud83e\ude9b Types",l={unversionedId:"api/types",id:"api/types",title:"Types",description:"Here are all the types referenced in the API section.",source:"@site/docs/api/types.md",sourceDirName:"api",slug:"/api/types",permalink:"/react-native-notificated/docs/api/types",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Types"},sidebar:"api",previous:{title:"API",permalink:"/react-native-notificated/docs/api/apiReference"}},s={},c=[{value:"<code>CustomAnimationConfig</code>",id:"customanimationconfig",level:3},{value:"<code>CustomVariants</code>",id:"customvariants",level:3},{value:"<code>GestureConfig</code>",id:"gestureconfig",level:3},{value:"<code>StyleProps</code>",id:"styleprops",level:3},{value:"<code>NotificationConfigParams</code>",id:"notificationconfigparams",level:3},{value:"<code>NotificationParams</code>",id:"notificationparams",level:3},{value:"<code>NotificationPosition</code>",id:"notificationposition",level:3},{value:"<code>ModalNotificationProvider</code>",id:"modalnotificationprovider",level:3}],p={toc:c};function u(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"-types"},"\ud83e\ude9b Types"),(0,r.kt)("p",null,"Here are all the types referenced in the API section."),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"customanimationconfig"},(0,r.kt)("inlineCode",{parentName:"h3"},"CustomAnimationConfig")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},'animationConfigIn: {\n type: "timing" | "spring",\n config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations\n}\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},'animationConfigOut?: {\n type: "timing" | "spring",\n config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations\n}\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"transitionInStyles: (progress: SharedValue<number>) => AnimatedStylesType // -> must be a worklet / Reanimated type declarations\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"transitionOutStyles?: (progress: SharedValue<number>) => AnimatedStylesType // -> must be a worklet / Reanimated type declarations\n")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"customvariants"},(0,r.kt)("inlineCode",{parentName:"h3"},"CustomVariants")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"{\n key: {\n component: React.FC\n },\n [...]\n}\n\n")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"gestureconfig"},(0,r.kt)("inlineCode",{parentName:"h3"},"GestureConfig")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"direction: 'y' | 'x' | 'full' | 'none'\n")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"styleprops"},(0,r.kt)("inlineCode",{parentName:"h3"},"StyleProps")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"titleSize: number // default 20\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"titleColor: string\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"descriptionSize: number // default 12\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"descriptionColor: string\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"bgColor: string\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"borderType: 'border' | 'accent' | 'no-border' // default 'accent',\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"borderRadius: number // default 25\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"accentColor: string\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"borderWidth: number // default 3\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"multiline: number // default 5\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"defaultIconType: 'color' | 'monochromatic' | 'no-icon' // default 'color'\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"leftIconSource: ImageSourcePropType // -> React Native type declaration\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"imageStyle: ImageStyle // -> React Native type declaration\n")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"notificationconfigparams"},(0,r.kt)("inlineCode",{parentName:"h3"},"NotificationConfigParams")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"config?: {\n duration?: number // default 3000\n notificationPosition: NotificationPosition // default 'top'\n animationConfig: CustomAnimationConfig\n}\n")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"notificationparams"},(0,r.kt)("inlineCode",{parentName:"h3"},"NotificationParams")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"params: {\n title?: string\n description?: string\n onPress?: () => void\n style?: StyleProps\n hideCloseButton?: boolean // default false\n customID?: string\n}\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"When used with a custom notification, there is a little difference in the 'title' and 'description'")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"// when calling custom component:\nparams: {\n customTitle?: string\n customDescription?: string\n [...]\n // rest is the same\n}\n")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"notificationposition"},(0,r.kt)("inlineCode",{parentName:"h3"},"NotificationPosition")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},";'top' | 'center' | 'top'\n")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"modalnotificationprovider"},(0,r.kt)("inlineCode",{parentName:"h3"},"ModalNotificationProvider")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-tsx"},"ModalNotificationsProvider: React.FC<React.PropsWithChildren<{ notificationTopPosition?: number }>>\n")),(0,r.kt)("hr",null))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c6940b42.7a88de7b.js b/assets/js/c6940b42.7a88de7b.js new file mode 100644 index 00000000..0c606386 --- /dev/null +++ b/assets/js/c6940b42.7a88de7b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[261],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var i=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,i,o=function(e,t){if(null==e)return{};var n,i,o={},r=Object.keys(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=i.createContext({}),l=function(e){var t=i.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=l(e.components);return i.createElement(p.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,d=u["".concat(p,".").concat(m)]||u[m]||f[m]||r;return n?i.createElement(d,a(a({ref:t},c),{},{components:n})):i.createElement(d,a({ref:t},c))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,a=new Array(r);a[0]=m;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[u]="string"==typeof e?e:o,a[1]=s;for(var l=2;l<r;l++)a[l]=n[l];return i.createElement.apply(null,a)}return i.createElement.apply(null,n)}m.displayName="MDXCreateElement"},9812:function(e,t,n){n.r(t),n.d(t,{assets:function(){return p},contentTitle:function(){return a},default:function(){return u},frontMatter:function(){return r},metadata:function(){return s},toc:function(){return l}});var i=n(3117),o=(n(7294),n(3905));const r={sidebar_position:7},a="\ud83d\udced Push notifications example",s={unversionedId:"intro/examples/push-notifications-example",id:"intro/examples/push-notifications-example",title:"\ud83d\udced Push notifications example",description:"Here's an example of how you can handle push notifications in your application (when in foreground) using Firebase",source:"@site/docs/intro/examples/push-notifications-example.md",sourceDirName:"intro/examples",slug:"/intro/examples/push-notifications-example",permalink:"/react-native-notificated/docs/intro/examples/push-notifications-example",draft:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"intro",previous:{title:"\ud83d\udd25 Redux example",permalink:"/react-native-notificated/docs/intro/examples/redux-example"},next:{title:"\ud83d\udd14 Notifcation In Modal Example",permalink:"/react-native-notificated/docs/intro/examples/notification-in-modal-example"}},p={},l=[{value:"\ud83d\udca1 Setup",id:"-setup",level:2},{value:"\ud83d\udc40 Example Implementation",id:"-example-implementation",level:2},{value:"App in Foreground",id:"app-in-foreground",level:3}],c={toc:l};function u(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,i.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"-push-notifications-example"},"\ud83d\udced Push notifications example"),(0,o.kt)("p",null,"Here's an example of how you can handle push notifications in your application (when in foreground) using ",(0,o.kt)("a",{parentName:"p",href:"https://rnfirebase.io/"},"Firebase"),"\nLet's go then! \ud83d\udcaa"),(0,o.kt)("h2",{id:"-setup"},"\ud83d\udca1 Setup"),(0,o.kt)("p",null,"Before we jump into setup proccess, make sure that you have created a new firebase project. You will need it later to send push notifications. If you haven't done it yet, you can do it ",(0,o.kt)("a",{parentName:"p",href:"https://console.firebase.google.com/"},"here"),"."),(0,o.kt)("p",null,"With a new firebase project created, it's time to proceed with installation of these two packages that will be necessary to handle push notifications:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://rnfirebase.io/#prerequisites"},"@react-native-firebase")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://rnfirebase.io/messaging/usage#installation"},"@react-native-firebase/messaging"))),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Documentation clearly describes the whole process of installation, so I will not focus on it here.\nBefore proceeding to the next step, make sure you have done all previous steps.")),(0,o.kt)("h2",{id:"-example-implementation"},"\ud83d\udc40 Example Implementation"),(0,o.kt)("h3",{id:"app-in-foreground"},"App in Foreground"),(0,o.kt)("p",null,"To handle push notifications in foreground we have to create a listener which will subscribe for all incoming firebase push events.\nWe can do this by using ",(0,o.kt)("inlineCode",{parentName:"p"},"messaging().onMessage()")," from ",(0,o.kt)("inlineCode",{parentName:"p"},"@react-native-firebase/messaging"),". Method ",(0,o.kt)("inlineCode",{parentName:"p"},"onMessage()")," takes an asynchronous function as a parameter, with an argument which is the push notification payload. Now we can use this data to set our in-app notification with a ",(0,o.kt)("inlineCode",{parentName:"p"},"notify()"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"// ** imports\nimport messaging from '@react-native-firebase/messaging'\nimport { useNotifications } from 'react-native-notificated'\n\nexport const App = () => {\n const { notify } = useNotifications()\n\n useEffect(() => {\n const unsubscribe = messaging().onMessage(async (remoteMessage) => {\n notify('info', {\n params: {\n title: remoteMessage.notification?.title || 'defalut title',\n description: remoteMessage.notification?.body,\n },\n })\n })\n\n return unsubscribe\n }, [notify])\n\n return // Some JSX\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d478062d.e407c3db.js b/assets/js/d478062d.e407c3db.js new file mode 100644 index 00000000..5d0a57ec --- /dev/null +++ b/assets/js/d478062d.e407c3db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[318],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return d}});var i=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function r(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?a(Object(n),!0).forEach((function(e){o(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function c(t,e){if(null==t)return{};var n,i,o=function(t,e){if(null==t)return{};var n,i,o={},a=Object.keys(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var s=i.createContext({}),l=function(t){var e=i.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):r(r({},e),t)),n},p=function(t){var e=l(t.components);return i.createElement(s.Provider,{value:e},t.children)},u="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},m=i.forwardRef((function(t,e){var n=t.components,o=t.mdxType,a=t.originalType,s=t.parentName,p=c(t,["components","mdxType","originalType","parentName"]),u=l(n),m=o,d=u["".concat(s,".").concat(m)]||u[m]||f[m]||a;return n?i.createElement(d,r(r({ref:e},p),{},{components:n})):i.createElement(d,r({ref:e},p))}));function d(t,e){var n=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var a=n.length,r=new Array(a);r[0]=m;var c={};for(var s in e)hasOwnProperty.call(e,s)&&(c[s]=e[s]);c.originalType=t,c[u]="string"==typeof t?t:o,r[1]=c;for(var l=2;l<a;l++)r[l]=n[l];return i.createElement.apply(null,r)}return i.createElement.apply(null,n)}m.displayName="MDXCreateElement"},1251:function(t,e,n){n.r(e),n.d(e,{assets:function(){return s},contentTitle:function(){return r},default:function(){return u},frontMatter:function(){return a},metadata:function(){return c},toc:function(){return l}});var i=n(3117),o=(n(7294),n(3905));const a={sidebar_position:1},r="\ud83d\udd04 Transitions",c={unversionedId:"intro/animations/changing-transitions",id:"intro/animations/changing-transitions",title:"\ud83d\udd04 Transitions",description:"\ud83c\udf9b Changing transitions",source:"@site/docs/intro/animations/changing-transitions.md",sourceDirName:"intro/animations",slug:"/intro/animations/changing-transitions",permalink:"/react-native-notificated/docs/intro/animations/changing-transitions",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"intro",previous:{title:"\ud83d\udccf Notification width",permalink:"/react-native-notificated/docs/intro/default-variants-config/width"},next:{title:"\ud83d\udcab Custom transitions",permalink:"/react-native-notificated/docs/intro/animations/custom-transitions"}},s={},l=[{value:"\ud83c\udf9b Changing transitions",id:"-changing-transitions",level:3},{value:"\u203c\ufe0f When changing the transition <strong>type</strong>, you can choose from a variety of pre-made configs that our team has prepared for you!",id:"\ufe0f-when-changing-the-transition-type-you-can-choose-from-a-variety-of-pre-made-configs-that-our-team-has-prepared-for-you",level:6},{value:"\ud83d\udd26 Config priority",id:"-config-priority",level:3},{value:"\ud83d\udce6 Pre-made configs:",id:"-pre-made-configs",level:3},{value:"\ud83d\udd27 Custom transitions",id:"-custom-transitions",level:3}],p={toc:l};function u(t){let{components:e,...n}=t;return(0,o.kt)("wrapper",(0,i.Z)({},p,n,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"-transitions"},"\ud83d\udd04 Transitions"),(0,o.kt)("h3",{id:"-changing-transitions"},"\ud83c\udf9b Changing transitions"),(0,o.kt)("p",null,"You can change the way in which the notification boxes are animated by simply redeclaring the transition type in the ",(0,o.kt)("strong",{parentName:"p"},"config")," or ",(0,o.kt)("strong",{parentName:"p"},"payload")," objects."),(0,o.kt)("p",null,"Depending on whether you want to change the default transitions for the whole app or only change it for a certain notification, you can either:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Change the animation ",(0,o.kt)("strong",{parentName:"li"},"type")," in the config object of ",(0,o.kt)("inlineCode",{parentName:"li"},"createNotification"),":")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-typescript"},"import { createNotifications, RotateInRotateOut } from 'react-native-notificated'\n\nconst { useNotifications } = createNotifications({\n animationConfig: RotateInRotateOut,\n})\n")),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},"Use the ",(0,o.kt)("inlineCode",{parentName:"li"},"config.animationConfig")," property in the ",(0,o.kt)("strong",{parentName:"li"},"payload")," of a ",(0,o.kt)("inlineCode",{parentName:"li"},"notify")," function:")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-typescript"},"import { createNotifications, SlideInLeftSlideOutRight } from 'react-native-notificated'\n\nconst { useNotifications } = createNotifications()\n\nconst { notify } = useNotifications()\n\nnotify('success', {\n params: {\n title: 'Success',\n description: 'This is where the toast text goes',\n },\n config: {\n animationConfig: SlideInLeftSlideOutRight,\n },\n})\n")),(0,o.kt)("ol",{start:3},(0,o.kt)("li",{parentName:"ol"},"Change the animation ",(0,o.kt)("strong",{parentName:"li"},"type")," in the config object of a certain ",(0,o.kt)("inlineCode",{parentName:"li"},"variant")," in the config object of ",(0,o.kt)("inlineCode",{parentName:"li"},"createNotification"),":")),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},(0,o.kt)("em",{parentName:"p"},"Not yet implemented \ud83d\ude14"))),(0,o.kt)("h6",{id:"\ufe0f-when-changing-the-transition-type-you-can-choose-from-a-variety-of-pre-made-configs-that-our-team-has-prepared-for-you"},"\u203c\ufe0f When changing the transition ",(0,o.kt)("strong",{parentName:"h6"},"type"),", you can choose from a variety of pre-made configs that our team has prepared for you!"),(0,o.kt)("h3",{id:"-config-priority"},"\ud83d\udd26 Config priority"),(0,o.kt)("p",null,"For each subsequent notification, the library looks for an animation config in the following order:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"First, it looks for a config defined in ",(0,o.kt)("inlineCode",{parentName:"li"},"notify")," payload"),(0,o.kt)("li",{parentName:"ol"},"Next, it looks for a global config from ",(0,o.kt)("inlineCode",{parentName:"li"},"createNotification")),(0,o.kt)("li",{parentName:"ol"},"At last, when no config is found, it uses the default behaviour, which is platform-dependend")),(0,o.kt)("h3",{id:"-pre-made-configs"},"\ud83d\udce6 Pre-made configs:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"RotateZIn")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ZoomInDownZoomOutUp")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"ZoomInDownZoomOutDown")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"RotateInRotateOut")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"SlideInLeftSlideOutRight"))),(0,o.kt)("h3",{id:"-custom-transitions"},"\ud83d\udd27 Custom transitions"),(0,o.kt)("p",null,"If you feel like you need a custom transition, fear not, we have got you covered! Go to the next chapter to see how to create your own transition! \ud83d\udca5"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d47ad1f1.eb729eb2.js b/assets/js/d47ad1f1.eb729eb2.js new file mode 100644 index 00000000..45516298 --- /dev/null +++ b/assets/js/d47ad1f1.eb729eb2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[382],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var i=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,i,o=function(e,t){if(null==e)return{};var n,i,o={},r=Object.keys(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(n),m=o,d=p["".concat(l,".").concat(m)]||p[m]||f[m]||r;return n?i.createElement(d,a(a({ref:t},u),{},{components:n})):i.createElement(d,a({ref:t},u))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,a=new Array(r);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var c=2;c<r;c++)a[c]=n[c];return i.createElement.apply(null,a)}return i.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3315:function(e,t,n){n.r(t),n.d(t,{assets:function(){return l},contentTitle:function(){return a},default:function(){return p},frontMatter:function(){return r},metadata:function(){return s},toc:function(){return c}});var i=n(3117),o=(n(7294),n(3905));const r={sidebar_position:5},a="\ud83e\udded Custom examples",s={unversionedId:"intro/examples/custom-examples",id:"intro/examples/custom-examples",title:"\ud83e\udded Custom examples",description:"Code has been already described step by step in the DEFAULT EXAMPLES section, so I think there is no use to do it here again.",source:"@site/docs/intro/examples/custom-examples.md",sourceDirName:"intro/examples",slug:"/intro/examples/custom-examples",permalink:"/react-native-notificated/docs/intro/examples/custom-examples",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"intro",previous:{title:"\ud83d\udd8b\ufe0f Global types config examples",permalink:"/react-native-notificated/docs/intro/examples/global-types-config-examples"},next:{title:"\u270d\ufe0f Custom components examples",permalink:"/react-native-notificated/docs/intro/examples/custom-components-examples"}},l={},c=[{value:"Code",id:"code",level:2},{value:"Visualization of examples",id:"visualization-of-examples",level:2},{value:"Success notification",id:"success-notification",level:3},{value:"Error notification",id:"error-notification",level:3},{value:"Warning notification",id:"warning-notification",level:3},{value:"Info notification",id:"info-notification",level:3},{value:"Conclusion",id:"conclusion",level:2}],u={toc:c};function p(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,i.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"-custom-examples"},"\ud83e\udded Custom examples"),(0,o.kt)("br",null),(0,o.kt)("p",null,"Code has been already described step by step in the ",(0,o.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/examples/default-examples"},"DEFAULT EXAMPLES")," section, so I think there is no use to do it here again."),(0,o.kt)("p",null,"Here we have only a few differences I need to mention, and they are minimal:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"we use ",(0,o.kt)("inlineCode",{parentName:"li"},"modify()")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"remove()")," only in the ",(0,o.kt)("a",{parentName:"li",href:"/react-native-notificated/docs/intro/examples/default-examples"},"DEFAULT EXAMPLES")," because their usage is limited, and the explanation there is all we need to know. We can remove the notification, or modify it, and therefore we will not be using them here and in the other examples as well. For that same reason, we will not be using ",(0,o.kt)("inlineCode",{parentName:"li"},"useState")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"useNotificationController")," here."),(0,o.kt)("li",{parentName:"ul"},"we filled the ",(0,o.kt)("inlineCode",{parentName:"li"},"style")," object in every notification. To read more about the single notification properties please go to the ",(0,o.kt)("a",{parentName:"li",href:"/react-native-notificated/docs/intro/default-variants-config/props-config"},"SINGLE NOTIFICATION CONFIG")," section.",(0,o.kt)("br",null))),(0,o.kt)("p",null,"In fact that's the only differences between Default Examples and Custom Examples.",(0,o.kt)("br",null),"\nLet's take a look at the code and the visualisations then:"),(0,o.kt)("h2",{id:"code"},"Code"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { styles } from './styles'\nimport { createNotifications } from 'react-native-notificated'\nimport { SuccessButton } from '../components/basicExamples/SuccessButton'\nimport { ErrorButton } from '../components/basicExamples/ErrorButton'\nimport { WarningButton } from '../components/basicExamples/WarningButton'\nimport { InfoButton } from '../components/basicExamples/InfoButton'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n isNotch: true,\n})\n\nexport const SingleCustomCases = () => {\n const { notify } = useNotifications()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n <SuccessButton\n onPress={() =>\n notify('success', {\n params: {\n description: 'Task has been completed without any error ',\n title: 'Action completed',\n style: {\n titleSize: 20,\n descriptionSize: 14,\n accentColor: '#7CFC00',\n borderType: 'accent',\n defaultIconType: 'monochromatic',\n multiline: 2,\n },\n },\n })\n }\n />\n <ErrorButton\n onPress={() =>\n notify('error', {\n params: {\n description: 'This error may damage your system. ',\n title: 'Integration error',\n style: {\n titleSize: 25,\n titleColor: '#FF0000',\n descriptionSize: 12,\n accentColor: '#FF0000',\n borderType: 'accent',\n defaultIconType: 'no-icon',\n },\n },\n })\n }\n />\n <WarningButton\n onPress={() =>\n notify('warning', {\n params: {\n description:\n 'All the css styles are now inactive. You can fix that by setting new values in your example',\n title: 'Warning',\n style: {\n defaultIconType: 'no-icon',\n borderType: 'no-border',\n multiline: 3,\n },\n },\n })\n }\n />\n <InfoButton\n onPress={() =>\n notify('info', {\n params: {\n description:\n 'This is where the toast text goes. This text have more than one line. If the multiline is set by default, only one line is visible. Depends on the number of lines, another text parts are visible. We can set even 100 lines. If the text takes only 1 line, then size of the notification will fit',\n title: 'Info',\n style: {\n titleSize: 22,\n titleColor: '#C71585',\n leftIconSource: require('../../assets/custom-info-icon-2.png'),\n multiline: 8,\n accentColor: '#C71585',\n borderWidth: 2,\n },\n },\n })\n }\n />\n </SafeAreaView>\n )\n}\n")),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"visualization-of-examples"},"Visualization of examples"),(0,o.kt)("p",null,"Let's see the notifications we declared above:"),(0,o.kt)("br",null),(0,o.kt)("h3",{id:"success-notification"},"Success notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Success",src:n(4215).Z,width:"742",height:"252"})),(0,o.kt)("h3",{id:"error-notification"},"Error notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Error",src:n(3942).Z,width:"744",height:"218"})),(0,o.kt)("h3",{id:"warning-notification"},"Warning notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Warning",src:n(1406).Z,width:"740",height:"274"})),(0,o.kt)("h3",{id:"info-notification"},"Info notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Info",src:n(8703).Z,width:"740",height:"458"})),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"conclusion"},"Conclusion"),(0,o.kt)("p",null,"Like we can see, every notification has its own style, but it doesn\u2019t go beyond the scope of this individual notification"),(0,o.kt)("p",null,"What we should remember is that the single notification style overwrites each of those configs:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"globalConfig")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"successConfig")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"errorConfig")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"warningConfig")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"infoConfig"))),(0,o.kt)("p",null,"To read more please go to ",(0,o.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/default-variants-config/props-config"},"SINGLE NOTIFICATION CONFIG")," and the ",(0,o.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting"},"ORDER OF SETTINGS OVERWRITING")," sections."))}p.isMDXComponent=!0},3942:function(e,t,n){t.Z=n.p+"assets/images/error-custom-41df2eb96a3a777409b1207642ce4c73.png"},8703:function(e,t,n){t.Z=n.p+"assets/images/info-custom-1e034123bd95751712e9a7b0a1b2f0ca.png"},4215:function(e,t,n){t.Z=n.p+"assets/images/success-custom-801a088c6de2da9d6b8b6b213c7f583a.png"},1406:function(e,t,n){t.Z=n.p+"assets/images/warning-custom-ce62b9c0f3b54c8025e204cf0cd3f466.png"}}]); \ No newline at end of file diff --git a/assets/js/d6395bee.8f5f7937.js b/assets/js/d6395bee.8f5f7937.js new file mode 100644 index 00000000..e88f80f3 --- /dev/null +++ b/assets/js/d6395bee.8f5f7937.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[320],{3905:function(e,t,n){n.d(t,{Zo:function(){return f},kt:function(){return d}});var i=n(7294);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 i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,i,o=function(e,t){if(null==e)return{};var n,i,o={},a=Object.keys(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)n=a[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=i.createContext({}),c=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},f=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,f=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=o,d=p["".concat(s,".").concat(m)]||p[m]||u[m]||a;return n?i.createElement(d,r(r({ref:t},f),{},{components:n})):i.createElement(d,r({ref:t},f))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,r[1]=l;for(var c=2;c<a;c++)r[c]=n[c];return i.createElement.apply(null,r)}return i.createElement.apply(null,n)}m.displayName="MDXCreateElement"},8684:function(e,t,n){n.r(t),n.d(t,{assets:function(){return s},contentTitle:function(){return r},default:function(){return p},frontMatter:function(){return a},metadata:function(){return l},toc:function(){return c}});var i=n(3117),o=(n(7294),n(3905));const a={sidebar_position:3},r="\u2712\ufe0f Global config examples",l={unversionedId:"intro/examples/global-config-examples",id:"intro/examples/global-config-examples",title:"\u2712\ufe0f Global config examples",description:"Code has been already described step by step in the DEFAULT EXAMPLES section.",source:"@site/docs/intro/examples/global-config-examples.md",sourceDirName:"intro/examples",slug:"/intro/examples/global-config-examples",permalink:"/react-native-notificated/docs/intro/examples/global-config-examples",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"intro",previous:{title:"\ud83d\udd8a\ufe0f Dark mode examples",permalink:"/react-native-notificated/docs/intro/examples/dark-mode-examples"},next:{title:"\ud83d\udd8b\ufe0f Global types config examples",permalink:"/react-native-notificated/docs/intro/examples/global-types-config-examples"}},s={},c=[{value:"Code",id:"code",level:2},{value:"Visualization of examples",id:"visualization-of-examples",level:2},{value:"Success notification",id:"success-notification",level:3},{value:"Error notification",id:"error-notification",level:3},{value:"Warning notification",id:"warning-notification",level:3},{value:"Info notification",id:"info-notification",level:3},{value:"Conclusion",id:"conclusion",level:2}],f={toc:c};function p(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,i.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\ufe0f-global-config-examples"},"\u2712\ufe0f Global config examples"),(0,o.kt)("br",null),(0,o.kt)("p",null,"Code has been already described step by step in the ",(0,o.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/examples/default-examples"},"DEFAULT EXAMPLES")," section.",(0,o.kt)("br",null),"\nSo I think there is no use to do it here again.",(0,o.kt)("br",null),"\nHere we have only a few differences I need to mention, and they are minimal:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"we use ",(0,o.kt)("inlineCode",{parentName:"li"},"modify()")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"remove()")," only if the ",(0,o.kt)("a",{parentName:"li",href:"/react-native-notificated/docs/intro/examples/default-examples"},"DEFAULT EXAMPLES")," because their usage is limited, and the explanation there is all we need to know. We can remove the notification, or modify it. So, we will not use them here and in the other examples. Because of the same reason, we will not use ",(0,o.kt)("inlineCode",{parentName:"li"},"useState")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"useNotificationController")," here."),(0,o.kt)("li",{parentName:"ul"},"we filled the ",(0,o.kt)("inlineCode",{parentName:"li"},"globalConfig")," object in the ",(0,o.kt)("inlineCode",{parentName:"li"},"defaultStylesSettings"),". This object is responsible for setting properties for all notifications. To read more please go back to the ",(0,o.kt)("a",{parentName:"li",href:"/react-native-notificated/docs/intro/default-variants-config/global-config"},"GLOBAL CONFIG")," section.",(0,o.kt)("br",null))),(0,o.kt)("p",null,"That's the only difference between Default Examples and Global Config Examples.",(0,o.kt)("br",null),"\nLet's take a look at the code and the visualizations then:"),(0,o.kt)("h2",{id:"code"},"Code"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { SuccessButton } from '../components/basicExamples/SuccessButton'\nimport { ErrorButton } from '../components/basicExamples/ErrorButton'\nimport { WarningButton } from '../components/basicExamples/WarningButton'\nimport { InfoButton } from '../components/basicExamples/InfoButton'\nimport { styles } from './styles'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n isNotch: true,\n defaultStylesSettings: {\n darkMode: true,\n },\n})\n\nexport const DarkModeExamples = () => {\n const { notify } = useNotifications()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n <SuccessButton\n onPress={() =>\n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n },\n })\n }\n />\n <ErrorButton\n onPress={() =>\n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }\n />\n <WarningButton\n onPress={() =>\n notify('warning', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Warning',\n },\n })\n }\n />\n <InfoButton\n onPress={() =>\n notify('info', {\n params: {\n description: 'This is where the toast text goes.',\n title: 'Info',\n },\n })\n }\n />\n </SafeAreaView>\n )\n}\n\n")),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"visualization-of-examples"},"Visualization of examples"),(0,o.kt)("p",null,"Let's see the notifications we declared above:"),(0,o.kt)("br",null),(0,o.kt)("h3",{id:"success-notification"},"Success notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Success",src:n(1997).Z,width:"754",height:"230"})),(0,o.kt)("h3",{id:"error-notification"},"Error notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Error",src:n(544).Z,width:"746",height:"220"})),(0,o.kt)("h3",{id:"warning-notification"},"Warning notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Warning",src:n(6542).Z,width:"744",height:"228"})),(0,o.kt)("h3",{id:"info-notification"},"Info notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Info",src:n(5691).Z,width:"742",height:"224"})),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"conclusion"},"Conclusion"),(0,o.kt)("p",null,"If we exclude titles and icons, we can see that all those notifications are the same. ",(0,o.kt)("br",null),"\nIt's because ",(0,o.kt)("inlineCode",{parentName:"p"},"globalConfig")," affects all the notifications. Doesn't matter what the type of notification is.",(0,o.kt)("br",null),"\nTo read more please go back to the ",(0,o.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/default-variants-config/global-config"},"GLOBAL CONFIG")," section."))}p.isMDXComponent=!0},544:function(e,t,n){t.Z=n.p+"assets/images/error-global-e7a8e87e13839002f9f7a83039df5d1a.png"},5691:function(e,t,n){t.Z=n.p+"assets/images/info-global-8806cb51dad5e283ba73f62abef7b4c0.png"},1997:function(e,t,n){t.Z=n.p+"assets/images/success-global-bb0298ebba24a7e58e5fbee40f0abf03.png"},6542:function(e,t,n){t.Z=n.p+"assets/images/warning-global-20900012614dd1f6aa99f3a3fa9a2e25.png"}}]); \ No newline at end of file diff --git a/assets/js/e2240ec9.0550693f.js b/assets/js/e2240ec9.0550693f.js new file mode 100644 index 00000000..4cc4ebb7 --- /dev/null +++ b/assets/js/e2240ec9.0550693f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[742],{3905:function(n,t,e){e.d(t,{Zo:function(){return m},kt:function(){return g}});var i=e(7294);function a(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}function o(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),e.push.apply(e,i)}return e}function r(n){for(var t=1;t<arguments.length;t++){var e=null!=arguments[t]?arguments[t]:{};t%2?o(Object(e),!0).forEach((function(t){a(n,t,e[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):o(Object(e)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))}))}return n}function s(n,t){if(null==n)return{};var e,i,a=function(n,t){if(null==n)return{};var e,i,a={},o=Object.keys(n);for(i=0;i<o.length;i++)e=o[i],t.indexOf(e)>=0||(a[e]=n[e]);return a}(n,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);for(i=0;i<o.length;i++)e=o[i],t.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(n,e)&&(a[e]=n[e])}return a}var l=i.createContext({}),p=function(n){var t=i.useContext(l),e=t;return n&&(e="function"==typeof n?n(t):r(r({},t),n)),e},m=function(n){var t=p(n.components);return i.createElement(l.Provider,{value:t},n.children)},u="mdxType",c={inlineCode:"code",wrapper:function(n){var t=n.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(n,t){var e=n.components,a=n.mdxType,o=n.originalType,l=n.parentName,m=s(n,["components","mdxType","originalType","parentName"]),u=p(e),d=a,g=u["".concat(l,".").concat(d)]||u[d]||c[d]||o;return e?i.createElement(g,r(r({ref:t},m),{},{components:e})):i.createElement(g,r({ref:t},m))}));function g(n,t){var e=arguments,a=t&&t.mdxType;if("string"==typeof n||a){var o=e.length,r=new Array(o);r[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=n,s[u]="string"==typeof n?n:a,r[1]=s;for(var p=2;p<o;p++)r[p]=e[p];return i.createElement.apply(null,r)}return i.createElement.apply(null,e)}d.displayName="MDXCreateElement"},3336:function(n,t,e){e.r(t),e.d(t,{assets:function(){return l},contentTitle:function(){return r},default:function(){return u},frontMatter:function(){return o},metadata:function(){return s},toc:function(){return p}});var i=e(3117),a=(e(7294),e(3905));const o={sidebar_position:2},r="\ud83d\udcab Custom transitions",s={unversionedId:"intro/animations/custom-transitions",id:"intro/animations/custom-transitions",title:"\ud83d\udcab Custom transitions",description:"\ud83d\udc69\ud83c\udffd\u200dHow the animations work under the hood",source:"@site/docs/intro/animations/custom-transitions.md",sourceDirName:"intro/animations",slug:"/intro/animations/custom-transitions",permalink:"/react-native-notificated/docs/intro/animations/custom-transitions",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"intro",previous:{title:"\ud83d\udd04 Transitions",permalink:"/react-native-notificated/docs/intro/animations/changing-transitions"},next:{title:"\ud83d\udd27 Specifying default types",permalink:"/react-native-notificated/docs/intro/types/custom-components-examples"}},l={},p=[{value:"\ud83d\udc69\ud83c\udffd\u200dHow the animations work under the hood",id:"how-the-animations-work-under-the-hood",level:3},{value:"Generating transition config with <code>AnimationBuilder</code>",id:"generating-transition-config-with-animationbuilder",level:3},{value:"Generating transition config with <code>generateAnimationConfig</code>",id:"generating-transition-config-with-generateanimationconfig",level:3},{value:"<code>animationConfigIn</code> and <code>animationConfigOut</code>",id:"animationconfigin-and-animationconfigout",level:3},{value:"<code>transitionInStyles</code> and <code>transitionOutStyles</code>",id:"transitioninstyles-and-transitionoutstyles",level:3}],m={toc:p};function u(n){let{components:t,...e}=n;return(0,a.kt)("wrapper",(0,i.Z)({},m,e,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"-custom-transitions"},"\ud83d\udcab Custom transitions"),(0,a.kt)("h3",{id:"how-the-animations-work-under-the-hood"},"\ud83d\udc69\ud83c\udffd\u200dHow the animations work under the hood"),(0,a.kt)("p",null,"Our library is dependent on the ",(0,a.kt)("inlineCode",{parentName:"p"},"react-native-reanimated")," (v2) which we use to animate the wrapper around the notification components."),(0,a.kt)("p",null,"To understand the ins and outs of animations, you can also take a look at the documentation for the aforementioned ",(0,a.kt)("a",{parentName:"p",href:"https://docs.swmansion.com/react-native-reanimated/"},"React Native Reanimated")),(0,a.kt)("p",null,"Our animation system is designed to recognize two kinds of transitions:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},"transition in")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},"transition out"))),(0,a.kt)("p",null,"and it is based on one animated value (shared value) that represents these transitions and animates itself from ",(0,a.kt)("inlineCode",{parentName:"p"},"0")," to ",(0,a.kt)("inlineCode",{parentName:"p"},"1"),"."),(0,a.kt)("p",null,"Its range should be self-explanatory, ",(0,a.kt)("inlineCode",{parentName:"p"},"0")," represents the beginning of the ",(0,a.kt)("strong",{parentName:"p"},"transition in")," animation, whereas ",(0,a.kt)("inlineCode",{parentName:"p"},"1")," stands for the starting point for the ",(0,a.kt)("strong",{parentName:"p"},"transition out")," kind of animation."),(0,a.kt)("p",null,"When the notification is about to show up, the value is animated from ",(0,a.kt)("inlineCode",{parentName:"p"},"0")," to ",(0,a.kt)("inlineCode",{parentName:"p"},"1"),". When the notification is about to dissapear, it goes from ",(0,a.kt)("inlineCode",{parentName:"p"},"1")," to ",(0,a.kt)("inlineCode",{parentName:"p"},"0"),"."),(0,a.kt)("p",null,"Every time a notification is about to be shown, the library renders the UI part wrapped with an ",(0,a.kt)("inlineCode",{parentName:"p"},"<Animated.View />")," and applies ",(0,a.kt)("strong",{parentName:"p"},"animated styles")," to it so it knows how it should animate."),(0,a.kt)("p",null,"The source of these styles comes from the ",(0,a.kt)("strong",{parentName:"p"},"animation config")," that is generated with ",(0,a.kt)("inlineCode",{parentName:"p"},"AnimationBuilder")," class or ",(0,a.kt)("inlineCode",{parentName:"p"},"generateAnimationConfig")," function and is used internally by the library to generate the animations. You can also use it yourself to create whatever transition you desiere."),(0,a.kt)("p",null,"Summarizing, there are ",(0,a.kt)("em",{parentName:"p"},"4 properties")," that can controll the transition. They all are handled by ",(0,a.kt)("inlineCode",{parentName:"p"},"AnimationBuilder")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"generateAnimationConfig")," and go as follows:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"animationConfigIn")," - spring / timing configuration for transition in. ",(0,a.kt)("strong",{parentName:"li"},"REQUIRED")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"animationConfigOut")," - spring / timing configuration for transition out. ",(0,a.kt)("strong",{parentName:"li"},"Not required"),", fallbacks to ",(0,a.kt)("inlineCode",{parentName:"li"},"animationConfigIn")," when not provided"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"transitionInStyles")," - a ",(0,a.kt)("em",{parentName:"li"},"worklet")," function that takes in the animated ",(0,a.kt)("strong",{parentName:"li"},"progress")," value. It has to return the animated styles. For ",(0,a.kt)("strong",{parentName:"li"},"transition in")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"transitionOutStyles")," - same as above but for transition out. Not required, fallbacks to ^")),(0,a.kt)("p",null,"The return type of this function (",(0,a.kt)("inlineCode",{parentName:"p"},"generateAnimationConfig"),") is ",(0,a.kt)("inlineCode",{parentName:"p"},"CustomAnimationConfig")," which you can then use when changing the animation types in, e.g., ",(0,a.kt)("inlineCode",{parentName:"p"},"createNotification")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"notify")," call."),(0,a.kt)("h3",{id:"generating-transition-config-with-animationbuilder"},"Generating transition config with ",(0,a.kt)("inlineCode",{parentName:"h3"},"AnimationBuilder")),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"AnimationBuilder")," takes in a config object as a property with which you can define the animation."),(0,a.kt)("p",null,"Below code snippets should give an idea how it works:"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Example 1")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"export const MoveDown = new AnimationBuilder({\n animationConfigIn: {\n type: 'timing',\n config: {\n duration: 400,\n },\n },\n transitionInStyles: (progress) => {\n 'worklet'\n const translateY = interpolate(progress.value, [0, 1], [-100, 0])\n return {\n opacity: progress.value,\n transform: [{ translateY }],\n }\n },\n transitionOutStyles: (progress) => {\n 'worklet'\n const translateY = interpolate(progress.value, [0, 1], [100, 0])\n return {\n opacity: progress.value,\n transform: [{ translateY }],\n }\n },\n})\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Example 2")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"export const RotateIn = generateAnimationConfig({\n animationConfigIn: {\n type: 'timing',\n config: {\n duration: 700,\n easing: Easing.out(Easing.exp),\n },\n },\n transitionInStyles: (progress) => {\n 'worklet'\n\n const rotate = interpolate(progress.value, [0, 1], [-360, 0])\n\n return {\n transform: [{ rotate: `${rotate}deg` }, { scale: progress.value }],\n opacity: progress.value,\n }\n },\n})\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Example 3")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"export const MoveDownRotateIn = MoveDown.add(RotateIn)\n")),(0,a.kt)("h3",{id:"generating-transition-config-with-generateanimationconfig"},"Generating transition config with ",(0,a.kt)("inlineCode",{parentName:"h3"},"generateAnimationConfig")),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"generateAnimation config is ",(0,a.kt)("inlineCode",{parentName:"p"},"deprecated"),". Please use Animation builder which allows your animations to be more customizable.")),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"generateAnimationConfig")," takes in a config object as a property with which you can define the animation."),(0,a.kt)("p",null,"The code snippets below should give an idea how it works:"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Example 1")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"export const Example1 = generateAnimationConfig({\n animationConfigIn: {\n type: 'timing',\n config: {\n duration: 400,\n easing: Easing.inOut(Easing.sin),\n },\n },\n transitionInStyles: (progress) => {\n 'worklet'\n\n const scale = interpolate(progress.value, [0, 1], [0.8, 1])\n const translateY = interpolate(progress.value, [0, 1], [-100, 0])\n\n return {\n opacity: progress.value,\n transform: [{ scale }, { translateY }],\n }\n },\n})\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Example 2")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"export const Example2 = generateAnimationConfig({\n animationConfigIn: {\n type: 'timing',\n config: {\n duration: 300,\n },\n },\n animationConfigOut: {\n type: 'spring',\n config: {\n damping: 4,\n mass: 0.8,\n },\n },\n transitionInStyles: (progress) => {\n 'worklet'\n\n const scale = interpolate(progress.value, [0, 1], [0.8, 1])\n const translateY = interpolate(progress.value, [0, 1], [-100, 0])\n\n return {\n opacity: progress.value,\n transform: [{ scale }, { translateY }],\n }\n },\n transitionOutStyles: (progress) => {\n 'worklet'\n\n const scale = interpolate(progress.value, [0, 1], [0.8, 1])\n const translateY = interpolate(progress.value, [0, 1], [100, 0])\n\n return {\n opacity: progress.value,\n transform: [{ scale }, { translateY }],\n }\n },\n})\n")),(0,a.kt)("p",null,"As you can see in the above examples, you have full control over the styles and animation configs for both kind of transitions - ",(0,a.kt)("strong",{parentName:"p"},"in")," and ",(0,a.kt)("strong",{parentName:"p"},"out"),"."),(0,a.kt)("h3",{id:"animationconfigin-and-animationconfigout"},(0,a.kt)("inlineCode",{parentName:"h3"},"animationConfigIn")," and ",(0,a.kt)("inlineCode",{parentName:"h3"},"animationConfigOut")),(0,a.kt)("p",null,"The type of\xa0",(0,a.kt)("inlineCode",{parentName:"p"},"animationConfigIn")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"animationConfigOut"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n type: "timing" | "spring",\n config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations\n}\n')),(0,a.kt)("h3",{id:"transitioninstyles-and-transitionoutstyles"},(0,a.kt)("inlineCode",{parentName:"h3"},"transitionInStyles")," and ",(0,a.kt)("inlineCode",{parentName:"h3"},"transitionOutStyles")),(0,a.kt)("p",null,"The type of\xa0",(0,a.kt)("inlineCode",{parentName:"p"},"transitionInStyles")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"transitionOutStyles")," is the\nfollowing function (must be a ",(0,a.kt)("inlineCode",{parentName:"p"},"worklet"),"):"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"type TransistionStylesConfigFunction = (progress: SharedValue<number>) => AnimatedStylesType\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ec1df02a.4d3a072c.js b/assets/js/ec1df02a.4d3a072c.js new file mode 100644 index 00000000..56efcd4b --- /dev/null +++ b/assets/js/ec1df02a.4d3a072c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[793],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var i=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,i,o=function(e,t){if(null==e)return{};var n,i,o={},r=Object.keys(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},f="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),f=c(n),d=o,m=f["".concat(l,".").concat(d)]||f[d]||u[d]||r;return n?i.createElement(m,a(a({ref:t},p),{},{components:n})):i.createElement(m,a({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,a=new Array(r);a[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[f]="string"==typeof e?e:o,a[1]=s;for(var c=2;c<r;c++)a[c]=n[c];return i.createElement.apply(null,a)}return i.createElement.apply(null,n)}d.displayName="MDXCreateElement"},4660:function(e,t,n){n.r(t),n.d(t,{assets:function(){return l},contentTitle:function(){return a},default:function(){return f},frontMatter:function(){return r},metadata:function(){return s},toc:function(){return c}});var i=n(3117),o=(n(7294),n(3905));const r={sidebar_position:2},a="\ud83d\udd8a\ufe0f Dark mode examples",s={unversionedId:"intro/examples/dark-mode-examples",id:"intro/examples/dark-mode-examples",title:"\ud83d\udd8a\ufe0f Dark mode examples",description:"Code has been already described step by step in the DEFAULT EXAMPLES section.",source:"@site/docs/intro/examples/dark-mode-examples.md",sourceDirName:"intro/examples",slug:"/intro/examples/dark-mode-examples",permalink:"/react-native-notificated/docs/intro/examples/dark-mode-examples",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"intro",previous:{title:"\ud83d\udd0f Default examples",permalink:"/react-native-notificated/docs/intro/examples/default-examples"},next:{title:"\u2712\ufe0f Global config examples",permalink:"/react-native-notificated/docs/intro/examples/global-config-examples"}},l={},c=[{value:"Code",id:"code",level:2},{value:"Visualization of examples",id:"visualization-of-examples",level:2},{value:"Success notification",id:"success-notification",level:3},{value:"Error notification",id:"error-notification",level:3},{value:"Warning notification",id:"warning-notification",level:3},{value:"Info notification",id:"info-notification",level:3}],p={toc:c};function f(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,i.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\ufe0f-dark-mode-examples"},"\ud83d\udd8a\ufe0f Dark mode examples"),(0,o.kt)("br",null),(0,o.kt)("p",null,"Code has been already described step by step in the ",(0,o.kt)("a",{parentName:"p",href:"/react-native-notificated/docs/intro/examples/default-examples"},"DEFAULT EXAMPLES")," section.",(0,o.kt)("br",null),"\nSo I think there is no use to do it here again.",(0,o.kt)("br",null),"\nHere we have only a few differences I need to mention, and they are minimal:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"we use ",(0,o.kt)("inlineCode",{parentName:"li"},"modify()")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"remove()")," only if the ",(0,o.kt)("a",{parentName:"li",href:"/react-native-notificated/docs/intro/examples/default-examples"},"DEFAULT EXAMPLES")," because their usage is limited, and the explanation there is all we need to know. We can remove notification, or modify it. So, we will not use them here and in the other examples. Because of the same reason we will not use ",(0,o.kt)("inlineCode",{parentName:"li"},"useState")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"useNotificationController")," here."),(0,o.kt)("li",{parentName:"ul"},"we added one extra property - ",(0,o.kt)("inlineCode",{parentName:"li"},"darkMode")," in the global settings ",(0,o.kt)("br",null)," (because we want to show examples in the dark mode, right? \ud83d\ude09 )",(0,o.kt)("br",null))),(0,o.kt)("p",null,"That's the only difference between Default Examples and Dark Mode Examples.",(0,o.kt)("br",null),"\nLet's take a look at the code and the visualizations then:"),(0,o.kt)("h2",{id:"code"},"Code"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-jsx"},"import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { createNotifications } from 'react-native-notificated'\nimport { SuccessButton } from '../components/basicExamples/SuccessButton'\nimport { ErrorButton } from '../components/basicExamples/ErrorButton'\nimport { WarningButton } from '../components/basicExamples/WarningButton'\nimport { InfoButton } from '../components/basicExamples/InfoButton'\nimport { styles } from './styles'\n\nconst { useNotifications, NotificationsProvider } = createNotifications({\n isNotch: true,\n defaultStylesSettings: {\n darkMode: true,\n },\n})\n\nexport const DarkModeExamples = () => {\n const { notify } = useNotifications()\n\n return (\n <SafeAreaView style={styles.container}>\n <NotificationsProvider />\n <SuccessButton\n onPress={() =>\n notify('success', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Success',\n },\n })\n }\n />\n <ErrorButton\n onPress={() =>\n notify('error', {\n params: {\n description: 'This is where the toast text goes. ',\n title: 'Error',\n },\n })\n }\n />\n <WarningButton\n onPress={() =>\n notify('warning', {\n params: {\n description: 'This is where the toast text goes',\n title: 'Warning',\n },\n })\n }\n />\n <InfoButton\n onPress={() =>\n notify('info', {\n params: {\n description: 'This is where the toast text goes.',\n title: 'Info',\n },\n })\n }\n />\n </SafeAreaView>\n )\n}\n\n")),(0,o.kt)("br",null),(0,o.kt)("h2",{id:"visualization-of-examples"},"Visualization of examples"),(0,o.kt)("p",null,"Let's see the notifications we declared above:"),(0,o.kt)("br",null),(0,o.kt)("h3",{id:"success-notification"},"Success notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Success",src:n(9581).Z,width:"736",height:"198"})),(0,o.kt)("h3",{id:"error-notification"},"Error notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Error",src:n(61).Z,width:"744",height:"204"})),(0,o.kt)("h3",{id:"warning-notification"},"Warning notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Warning",src:n(1559).Z,width:"744",height:"202"})),(0,o.kt)("h3",{id:"info-notification"},"Info notification"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Info",src:n(5123).Z,width:"742",height:"212"})))}f.isMDXComponent=!0},61:function(e,t,n){t.Z=n.p+"assets/images/error-darkMode-32f76a3e561eaaf7252e67b7dcd4ceaa.png"},5123:function(e,t,n){t.Z=n.p+"assets/images/info-darkMode-31cafaa98e3be111ce5af33eb3c73587.png"},9581:function(e,t,n){t.Z=n.p+"assets/images/success-darkMode-fd614fef48b4bab04ed15f471284f2ac.png"},1559:function(e,t,n){t.Z=n.p+"assets/images/warning-darkMode-cd0d8fe07bf0489397139d8c34313ed6.png"}}]); \ No newline at end of file diff --git a/assets/js/ec62de9c.6830d059.js b/assets/js/ec62de9c.6830d059.js new file mode 100644 index 00000000..4b9210be --- /dev/null +++ b/assets/js/ec62de9c.6830d059.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[869],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return g}});var i=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function l(t,e){if(null==t)return{};var n,i,r=function(t,e){if(null==t)return{};var n,i,r={},o=Object.keys(t);for(i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var s=i.createContext({}),c=function(t){var e=i.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},p=function(t){var e=c(t.components);return i.createElement(s.Provider,{value:e},t.children)},u="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return i.createElement(i.Fragment,{},e)}},d=i.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,s=t.parentName,p=l(t,["components","mdxType","originalType","parentName"]),u=c(n),d=r,g=u["".concat(s,".").concat(d)]||u[d]||f[d]||o;return n?i.createElement(g,a(a({ref:e},p),{},{components:n})):i.createElement(g,a({ref:e},p))}));function g(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,a=new Array(o);a[0]=d;var l={};for(var s in e)hasOwnProperty.call(e,s)&&(l[s]=e[s]);l.originalType=t,l[u]="string"==typeof t?t:r,a[1]=l;for(var c=2;c<o;c++)a[c]=n[c];return i.createElement.apply(null,a)}return i.createElement.apply(null,n)}d.displayName="MDXCreateElement"},4796:function(t,e,n){n.r(e),n.d(e,{assets:function(){return s},contentTitle:function(){return a},default:function(){return u},frontMatter:function(){return o},metadata:function(){return l},toc:function(){return c}});var i=n(3117),r=(n(7294),n(3905));const o={sidebar_position:1},a="\u2699\ufe0f Global notifications settings",l={unversionedId:"intro/comprehensive-configuration/global-notifications-settings",id:"intro/comprehensive-configuration/global-notifications-settings",title:"\u2699\ufe0f Global notifications settings",description:"The react-native-notificated library gives you a lot of possibilities to change the default configuration.",source:"@site/docs/intro/comprehensive-configuration/global-notifications-settings.md",sourceDirName:"intro/comprehensive-configuration",slug:"/intro/comprehensive-configuration/global-notifications-settings",permalink:"/react-native-notificated/docs/intro/comprehensive-configuration/global-notifications-settings",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"intro",previous:{title:"\ud83d\udee0 Basic configuration",permalink:"/react-native-notificated/docs/intro/basics/basic-configuration"},next:{title:"\u270f\ufe0f Order of overwriting settings",permalink:"/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting"}},s={},c=[{value:"Notch handling",id:"notch-handling",level:2}],p={toc:c};function u(t){let{components:e,...n}=t;return(0,r.kt)("wrapper",(0,i.Z)({},p,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\ufe0f-global-notifications-settings"},"\u2699\ufe0f Global notifications settings"),(0,r.kt)("br",null),(0,r.kt)("p",null,"The react-native-notificated library gives you a lot of possibilities to change the default configuration."),(0,r.kt)("p",null,"In the beginning, you can set the configuration for all the notifications used in the app."),(0,r.kt)("p",null,"Let's take a look at what exactly can we set globally:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Type"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"duration"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Number"),(0,r.kt)("td",{parentName:"tr",align:"center"},"3000"),(0,r.kt)("td",{parentName:"tr",align:null},"Use this property to set how long the notifications should be displayed on the screen. Value expressed in milliseconds.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"notificationPosition"),(0,r.kt)("td",{parentName:"tr",align:"center"},"'top' / 'top-right' / 'top-left' / 'center' / 'bottom' / 'bottom-right' / 'bottom-left'"),(0,r.kt)("td",{parentName:"tr",align:"center"},"'top'"),(0,r.kt)("td",{parentName:"tr",align:null},"Set where the notifications should appear on the screen. You can choose one of seven default options: top / top-right / top-left / center / bottom / bottom-right / bottom-left. To read more about the notification position please go to the ",(0,r.kt)("a",{parentName:"td",href:"../default-variants-config/position"},"NOTIFICATION POSITION")," section.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"notificationWidth"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Number"),(0,r.kt)("td",{parentName:"tr",align:"center"},"343"),(0,r.kt)("td",{parentName:"tr",align:null},"Use this property to set the width, in pixels, of the notifications that will be displayed on the screen.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"animationConfig"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Object"),(0,r.kt)("td",{parentName:"tr",align:"center"},"SlideInLeftSlideOutRight"),(0,r.kt)("td",{parentName:"tr",align:null},"Property responsible for the notification animation. You can set one of the animations prepared by us, or make your own config. To read more about the animation settings please go to the ",(0,r.kt)("a",{parentName:"td",href:"../animations/changing-transitions"},"ANIMATIONS SETTINGS")," section.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"isNotch"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Boolean"),(0,r.kt)("td",{parentName:"tr",align:"center"},"false"),(0,r.kt)("td",{parentName:"tr",align:null},"Property responsible for read if the device has notch. You can use one of the libraries (for example 'react-native-device-info') to read if the specific device has Notch and pass the value here.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"gestureConfig"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Object"),(0,r.kt)("td",{parentName:"tr",align:"center"},"iOS: 'y' / android: 'x'"),(0,r.kt)("td",{parentName:"tr",align:null},"Object responsible for setting gesture direction that triggers swipe-dismiss of notification. To read more about gesture config, please go to the ",(0,r.kt)("a",{parentName:"td",href:"../default-variants-config/props-config"},"GESTURE CONFIG")," section.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"defaultStylesSettings"),(0,r.kt)("td",{parentName:"tr",align:"center"},"Object"),(0,r.kt)("td",{parentName:"tr",align:"center"},"-"),(0,r.kt)("td",{parentName:"tr",align:null},"Object responsible for setting global styles for the notifications. You can also set here styles, for all the notifications of the specific type. For example for the error notifications. To read more about global style settings please go to the ",(0,r.kt)("a",{parentName:"td",href:"../default-variants-config/global-config"},"GLOBAL STYLES SETTINGS")," section.")))),(0,r.kt)("br",null),(0,r.kt)("p",null,"Here we can see the global notifications settings in their basic form with default settings: ",(0,r.kt)("br",null)),(0,r.kt)("br",null),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-jsx"},"const { useNotifications, NotificationsProvider } = createNotifications({\n duration: 300,\n notificationPosition: 'top',\n animationConfig: SlideInLeftSlideOutRight,\n isNotch: undefined,\n defaultStylesSettings: {},\n gestureConfig: { direction: 'y' },\n})\n")),(0,r.kt)("h2",{id:"notch-handling"},"Notch handling"),(0,r.kt)("p",null,"The library handles notch detection automatically so you don't have to worry about configuring this on your side. However, if you wish to take control over this by yourself, you can do that by declaring ",(0,r.kt)("inlineCode",{parentName:"p"},"isNotch")," property in the global config."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-jsx"},"const { useNotifications, NotificationsProvider } = createNotifications({\n ...\n isNotch: true,\n})\n")),(0,r.kt)("p",null,"Feel free to use for example ",(0,r.kt)("inlineCode",{parentName:"p"},"react-native-device-info"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f71bb59a.37125beb.js b/assets/js/f71bb59a.37125beb.js new file mode 100644 index 00000000..4860002d --- /dev/null +++ b/assets/js/f71bb59a.37125beb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[759],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},l="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),l=p(n),y=o,m=l["".concat(c,".").concat(y)]||l[y]||f[y]||a;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[l]="string"==typeof e?e:o,i[1]=s;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},8655:function(e,t,n){n.r(t),n.d(t,{assets:function(){return c},contentTitle:function(){return i},default:function(){return l},frontMatter:function(){return a},metadata:function(){return s},toc:function(){return p}});var r=n(3117),o=(n(7294),n(3905));const a={sidebar_position:1},i="\ud83d\udd27 Specifying default types",s={unversionedId:"intro/types/custom-components-examples",id:"intro/types/custom-components-examples",title:"\ud83d\udd27 Specifying default types",description:"Instead of using useNotification returned by createNotifications() you can default specify types by adding global type declarations.",source:"@site/docs/intro/types/custom-components-examples.md",sourceDirName:"intro/types",slug:"/intro/types/custom-components-examples",permalink:"/react-native-notificated/docs/intro/types/custom-components-examples",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"intro",previous:{title:"\ud83d\udcab Custom transitions",permalink:"/react-native-notificated/docs/intro/animations/custom-transitions"},next:{title:"\ud83c\udd98 Errors handling",permalink:"/react-native-notificated/docs/intro/errors-handling/"}},c={},p=[{value:"You have two ways to provide your types.",id:"you-have-two-ways-to-provide-your-types",level:2}],u={toc:p};function l(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"-specifying-default-types"},"\ud83d\udd27 Specifying default types"),(0,o.kt)("br",null),(0,o.kt)("p",null,"Instead of using ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotification")," returned by ",(0,o.kt)("inlineCode",{parentName:"p"},"createNotifications()")," you can default specify types by adding global type declarations.\nThis will overwrite types of ",(0,o.kt)("inlineCode",{parentName:"p"},"useNotification"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"notify"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"modify"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"remove")," imported from ",(0,o.kt)("inlineCode",{parentName:"p"},"react-native-notificated")),(0,o.kt)("p",null,"To achieve that you need to create a ",(0,o.kt)("inlineCode",{parentName:"p"},"d.ts")," file e.g. ",(0,o.kt)("inlineCode",{parentName:"p"},"notificated.d.ts")," with content like this:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"declare global {\n namespace Notificated {\n interface CustomVariants {}\n }\n}\n")),(0,o.kt)("h2",{id:"you-have-two-ways-to-provide-your-types"},"You have two ways to provide your types."),(0,o.kt)("p",null,"First one assumes that you will prepare them manually like this."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { Variant } from 'react-native-notificated'\n\ntype Variants = {\n variantName: Variant<typeof YourComponent>\n}\n\ndeclare global {\n namespace Notificated {\n interface CustomVariants extends Variants {}\n }\n}\n")),(0,o.kt)("p",null,"Second one assumes that you will use utility type provided by library.\nThis approach assumes that configuration is your source of type. If you change your configuration the types will not require update."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import { createNotifications } from 'react-native-notificated'\n\nconst { CustomVariantsTypeHelper } = createNotifications({\n variants: {\n variantName: { component: YourComponent },\n },\n})\n\ntype Variants = typeof CustomVariantsTypeHelper\n\ndeclare global {\n namespace Notificated {\n interface CustomVariants extends Variants {}\n }\n}\n")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.83448d70.js b/assets/js/main.83448d70.js new file mode 100644 index 00000000..83b18ab2 --- /dev/null +++ b/assets/js/main.83448d70.js @@ -0,0 +1,2 @@ +/*! For license information please see main.83448d70.js.LICENSE.txt */ +(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[179],{4334:function(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;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}t.Z=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},1205:function(e,t){"use strict";var n=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(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+","+m)return;var h=p[m],g=h.inside,v=!!h.lookbehind,b=!!h.greedy,y=h.alias;if(b&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,E=l.next,S=c;E!==t.tail&&!(d&&S>=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var C,_=1;if(b){if(!(C=o(k,S,e,v))||C.index>=e.length)break;var T=C.index,A=C.index+C[0].length,L=S;for(L+=E.value.length;T>=L;)L+=(E=E.next).value.length;if(S=L-=E.value.length,E.value instanceof a)continue;for(var R=E;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)_++,L+=R.value.length;_--,x=e.slice(S,L),C.index-=S}else if(!(C=o(k,0,x,v)))continue;T=C.index;var N=C[0],O=x.slice(0,T),P=x.slice(T+N.length),I=S+x.length;d&&I>d.reach&&(d.reach=I);var D=E.prev;if(O&&(D=s(t,D,O),S+=O.length),u(t,D,_),E=s(t,D,new a(f,g?r.tokenize(N,g):N,y,N)),P&&s(t,E,P),_>1){var M={cause:f+","+m,reach:I};i(e,t,n,E.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.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<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),r=n;n.default=n,r.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:r.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};a["language-"+t]={pattern:/[\s\S]+/,inside:r.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:a},r.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(e,t){r.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:r.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.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"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(r),r.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.c=r.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|[?:~]|[-+*/%&|^!=<>]=?/}),r.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),r.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},r.languages.c.string],char:r.languages.c.char,comment:r.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:r.languages.c}}}}),r.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 r.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(r),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"))}(r),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})}(r),r.languages.javascript=r.languages.extend("clike",{"class-name":[r.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}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.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:r.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:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.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:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.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:r.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"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.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")),r.languages.js=r.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}(r),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]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(r),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \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+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),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__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(r),r.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:r.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+/},r.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),r.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var 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 o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=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(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(r),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(r),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(r),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(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--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}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)}))}(r),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})}(r),r.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},r.languages.go=r.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/}),r.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete r.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,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[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,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(r),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}(r),r.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"}},r.languages.webmanifest=r.languages.json,r.languages.less=r.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:/[+\-*\/]/}),r.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),r.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:/[:;(){}]/},r.languages.objectivec=r.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 r.languages.objectivec["class-name"],r.languages.objc=r.languages.objectivec,r.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/},r.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:/[{}[\];(),.:]/},r.languages.python["string-interpolation"].inside.interpolation.inside.rest=r.languages.python,r.languages.py=r.languages.python,r.languages.reason=r.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/}),r.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 r.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}})}(r),r.languages.scss=r.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]+\}/}}}),r.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}]}),r.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),r.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}}),r.languages.scss.atrule.inside.rest=r.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:/[{}()\[\];:.]/}}(r),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}(r),r.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:/[()]/},t.Z=r},7459:function(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;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}t.Z=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},723:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(7294),a=n(3117),o=n(8356),i=n.n(o),l=n(6887),s={"130705e3":[()=>n.e(658).then(n.bind(n,5866)),"@site/docs/api/apiReference.md",5866],"134332ea":[()=>n.e(322).then(n.bind(n,725)),"@site/docs/intro/examples/notification-in-modal-example.md",725],"1510c8cb":[()=>n.e(200).then(n.bind(n,641)),"@site/docs/intro/default-variants-config/default-variants.md",641],17896441:[()=>Promise.all([n.e(532),n.e(430),n.e(918)]).then(n.bind(n,3332)),"@theme/DocItem",3332],"1ba8ff6a":[()=>n.e(399).then(n.bind(n,4858)),"@site/docs/intro/basics/basic-configuration.md",4858],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1df93b7f":[()=>Promise.all([n.e(532),n.e(237)]).then(n.bind(n,9641)),"@site/src/pages/index.tsx",9641],"1f391b9e":[()=>Promise.all([n.e(532),n.e(430),n.e(85)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"222e0563":[()=>n.e(225).then(n.bind(n,8903)),"@site/docs/intro/default-variants-config/width.md",8903],"2dbe75c6":[()=>n.e(720).then(n.bind(n,9657)),"@site/docs/intro/default-variants-config/global-config.md",9657],"393be207":[()=>n.e(414).then(n.bind(n,3123)),"@site/src/pages/markdown-page.md",3123],"3deb4b50":[()=>n.e(873).then(n.bind(n,6893)),"@site/docs/intro/examples/global-types-config-examples.md",6893],"4d4b98dc":[()=>n.e(697).then(n.bind(n,4043)),"@site/docs/intro/examples/redux-example.md",4043],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"6e08fe13":[()=>n.e(678).then(n.bind(n,6985)),"@site/docs/intro/default-variants-config/props-config.md",6985],"7155e245":[()=>n.e(58).then(n.bind(n,2306)),"@site/docs/intro/basics/basic-usage.md",2306],"73b95941":[()=>n.e(875).then(n.bind(n,4467)),"@site/docs/intro/default-variants-config/position.md",4467],"7d744e69":[()=>n.e(466).then(n.bind(n,5663)),"@site/docs/intro/intro.md",5663],"853d0b8d":[()=>n.e(90).then(n.t.bind(n,3769,19)),"/home/runner/work/react-native-notificated/react-native-notificated/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"8b63878d":[()=>n.e(449).then(n.t.bind(n,5745,19)),"/home/runner/work/react-native-notificated/react-native-notificated/docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"99021b66":[()=>n.e(726).then(n.bind(n,2033)),"@site/docs/intro/examples/default-examples.md",2033],"9bf77f4a":[()=>n.e(931).then(n.bind(n,1160)),"@site/docs/intro/examples/custom-components-examples.md",1160],b3722853:[()=>n.e(386).then(n.bind(n,4721)),"@site/docs/intro/errors-handling/errors-handling.md",4721],b935233d:[()=>n.e(353).then(n.bind(n,137)),"@site/docs/intro/comprehensive-configuration/order-of-settings-overwriting.md",137],b999a6e4:[()=>n.e(927).then(n.bind(n,4902)),"@site/docs/api/types.md",4902],c6940b42:[()=>n.e(261).then(n.bind(n,9812)),"@site/docs/intro/examples/push-notifications-example.md",9812],d478062d:[()=>n.e(318).then(n.bind(n,1251)),"@site/docs/intro/animations/changing-transitions.md",1251],d47ad1f1:[()=>n.e(382).then(n.bind(n,3315)),"@site/docs/intro/examples/custom-examples.md",3315],d6395bee:[()=>n.e(320).then(n.bind(n,8684)),"@site/docs/intro/examples/global-config-examples.md",8684],e2240ec9:[()=>n.e(742).then(n.bind(n,3336)),"@site/docs/intro/animations/custom-transitions.md",3336],ec1df02a:[()=>n.e(793).then(n.bind(n,4660)),"@site/docs/intro/examples/dark-mode-examples.md",4660],ec62de9c:[()=>n.e(869).then(n.bind(n,4796)),"@site/docs/intro/comprehensive-configuration/global-notifications-settings.md",4796],f71bb59a:[()=>n.e(759).then(n.bind(n,8655)),"@site/docs/intro/types/custom-components-examples.md",8655]};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(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(972).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 o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));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 o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}var p=[{path:"/react-native-notificated/markdown-page",component:f("/react-native-notificated/markdown-page","116"),exact:!0},{path:"/react-native-notificated/docs",component:f("/react-native-notificated/docs","aac"),routes:[{path:"/react-native-notificated/docs/api/apiReference",component:f("/react-native-notificated/docs/api/apiReference","283"),exact:!0,sidebar:"api"},{path:"/react-native-notificated/docs/api/types",component:f("/react-native-notificated/docs/api/types","cdb"),exact:!0,sidebar:"api"},{path:"/react-native-notificated/docs/intro/",component:f("/react-native-notificated/docs/intro/","452"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/animations/changing-transitions",component:f("/react-native-notificated/docs/intro/animations/changing-transitions","778"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/animations/custom-transitions",component:f("/react-native-notificated/docs/intro/animations/custom-transitions","f7c"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/basics/basic-configuration",component:f("/react-native-notificated/docs/intro/basics/basic-configuration","6fa"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/basics/basic-usage",component:f("/react-native-notificated/docs/intro/basics/basic-usage","076"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/comprehensive-configuration/global-notifications-settings",component:f("/react-native-notificated/docs/intro/comprehensive-configuration/global-notifications-settings","680"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting",component:f("/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting","c87"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/default-variants-config/default-variants",component:f("/react-native-notificated/docs/intro/default-variants-config/default-variants","4b5"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/default-variants-config/global-config",component:f("/react-native-notificated/docs/intro/default-variants-config/global-config","cbd"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/default-variants-config/position",component:f("/react-native-notificated/docs/intro/default-variants-config/position","2df"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/default-variants-config/props-config",component:f("/react-native-notificated/docs/intro/default-variants-config/props-config","617"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/default-variants-config/width",component:f("/react-native-notificated/docs/intro/default-variants-config/width","edb"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/errors-handling/",component:f("/react-native-notificated/docs/intro/errors-handling/","548"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/custom-components-examples",component:f("/react-native-notificated/docs/intro/examples/custom-components-examples","286"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/custom-examples",component:f("/react-native-notificated/docs/intro/examples/custom-examples","d19"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/dark-mode-examples",component:f("/react-native-notificated/docs/intro/examples/dark-mode-examples","0a0"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/default-examples",component:f("/react-native-notificated/docs/intro/examples/default-examples","c39"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/global-config-examples",component:f("/react-native-notificated/docs/intro/examples/global-config-examples","c1a"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/global-types-config-examples",component:f("/react-native-notificated/docs/intro/examples/global-types-config-examples","034"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/notification-in-modal-example",component:f("/react-native-notificated/docs/intro/examples/notification-in-modal-example","86a"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/push-notifications-example",component:f("/react-native-notificated/docs/intro/examples/push-notifications-example","60a"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/examples/redux-example",component:f("/react-native-notificated/docs/intro/examples/redux-example","dc5"),exact:!0,sidebar:"intro"},{path:"/react-native-notificated/docs/intro/types/custom-components-examples",component:f("/react-native-notificated/docs/intro/types/custom-components-examples","2cd"),exact:!0,sidebar:"intro"}]},{path:"/react-native-notificated/",component:f("/react-native-notificated/","809"),exact:!0},{path:"*",component:f("*")}]},8934:function(e,t,n){"use strict";n.d(t,{_:function(){return a},t:function(){return o}});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},9383:function(e,t,n){"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412),s=[n(2497),n(3310),n(8320),n(2295)],u=n(723),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(3117),m=n(5742),h=n(2263),g=n(4996),v=n(6668),b=n(1944),y=n(4711),w=n(9727),k=n(3320),E=n(197);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang: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 x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,v.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(b.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const _=new Map;function T(e){if(_.has(e.pathname))return{...e,pathname:_.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return _.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return _.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),L=n(8940);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>(t.default?.[e]??t[e])?.(...n)));return()=>a.forEach((e=>e?.()))}var N=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(a&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1));document.getElementById(e)?.scrollIntoView()}else window.scrollTo(0,0)}(n),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(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=>e.route.component.preload?.())))}class P 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}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}var I=P;const D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function j(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[F]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:D}))}function z(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(j,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[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:i}))}var $=n(4763);function q(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement($.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement(U,null),r.createElement(C,null),r.createElement(z,null),r.createElement(I,{location:T(t)},e)))))}var G=n(6887);const H=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();(document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode)?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Z=n(9670);const V=new Set,W=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,K={prefetch(e){if(!(e=>!Y()&&!W.has(e)&&!V.has(e))(e))return!1;V.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?H(t).catch((()=>{})):Promise.resolve()})))},preload(e){return!!(e=>!Y()&&!W.has(e))(e)&&(W.add(e),O(e))}};var Q=Object.freeze(K);if(l.Z.canUseDOM){window.docusaurus=Q;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(q,null))),document.getElementById("__docusaurus"))}))}},8940:function(e,t,n){"use strict";n.d(t,{_:function(){return c},M:function(){return d}});var r=n(7294),a=n(6809),o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/react-native-notificated/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/react-native-notificated/docs","mainDocId":"intro/intro","docs":[{"id":"api/apiReference","path":"/react-native-notificated/docs/api/apiReference","sidebar":"api"},{"id":"api/types","path":"/react-native-notificated/docs/api/types","sidebar":"api"},{"id":"intro/animations/changing-transitions","path":"/react-native-notificated/docs/intro/animations/changing-transitions","sidebar":"intro"},{"id":"intro/animations/custom-transitions","path":"/react-native-notificated/docs/intro/animations/custom-transitions","sidebar":"intro"},{"id":"intro/basics/basic-configuration","path":"/react-native-notificated/docs/intro/basics/basic-configuration","sidebar":"intro"},{"id":"intro/basics/basic-usage","path":"/react-native-notificated/docs/intro/basics/basic-usage","sidebar":"intro"},{"id":"intro/comprehensive-configuration/global-notifications-settings","path":"/react-native-notificated/docs/intro/comprehensive-configuration/global-notifications-settings","sidebar":"intro"},{"id":"intro/comprehensive-configuration/order-of-settings-overwriting","path":"/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting","sidebar":"intro"},{"id":"intro/default-variants-config/default-variants","path":"/react-native-notificated/docs/intro/default-variants-config/default-variants","sidebar":"intro"},{"id":"intro/default-variants-config/global-config","path":"/react-native-notificated/docs/intro/default-variants-config/global-config","sidebar":"intro"},{"id":"intro/default-variants-config/position","path":"/react-native-notificated/docs/intro/default-variants-config/position","sidebar":"intro"},{"id":"intro/default-variants-config/props-config","path":"/react-native-notificated/docs/intro/default-variants-config/props-config","sidebar":"intro"},{"id":"intro/default-variants-config/width","path":"/react-native-notificated/docs/intro/default-variants-config/width","sidebar":"intro"},{"id":"intro/errors-handling/errors-handling","path":"/react-native-notificated/docs/intro/errors-handling/","sidebar":"intro"},{"id":"intro/examples/custom-components-examples","path":"/react-native-notificated/docs/intro/examples/custom-components-examples","sidebar":"intro"},{"id":"intro/examples/custom-examples","path":"/react-native-notificated/docs/intro/examples/custom-examples","sidebar":"intro"},{"id":"intro/examples/dark-mode-examples","path":"/react-native-notificated/docs/intro/examples/dark-mode-examples","sidebar":"intro"},{"id":"intro/examples/default-examples","path":"/react-native-notificated/docs/intro/examples/default-examples","sidebar":"intro"},{"id":"intro/examples/global-config-examples","path":"/react-native-notificated/docs/intro/examples/global-config-examples","sidebar":"intro"},{"id":"intro/examples/global-types-config-examples","path":"/react-native-notificated/docs/intro/examples/global-types-config-examples","sidebar":"intro"},{"id":"intro/examples/notification-in-modal-example","path":"/react-native-notificated/docs/intro/examples/notification-in-modal-example","sidebar":"intro"},{"id":"intro/examples/push-notifications-example","path":"/react-native-notificated/docs/intro/examples/push-notifications-example","sidebar":"intro"},{"id":"intro/examples/redux-example","path":"/react-native-notificated/docs/intro/examples/redux-example","sidebar":"intro"},{"id":"intro/intro","path":"/react-native-notificated/docs/intro/","sidebar":"intro"},{"id":"intro/types/custom-components-examples","path":"/react-native-notificated/docs/intro/types/custom-components-examples","sidebar":"intro"}],"draftIds":[],"sidebars":{"intro":{"link":{"path":"/react-native-notificated/docs/intro/","label":"intro/intro"}},"api":{"link":{"path":"/react-native-notificated/docs/api/apiReference","label":"api/apiReference"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}'),l=n(7529),s=JSON.parse('{"docusaurusVersion":"2.2.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.2.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.2.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.2.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.2.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.2.0"}}}');const u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},4763:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(7294),a=n(412),o=n(5742),i=n(3285);function l(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function s(e){let{error:t,tryAgain:n}=e;return r.createElement(c,{fallback:()=>r.createElement(l,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(i.Z,null,r.createElement(l,{error:t,tryAgain:n})))}const u=e=>r.createElement(s,e);class c 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){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??u)(e)}return e??null}}},412:function(e,t){"use strict";const n="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,r={canUseDOM:n,canUseEventListeners:n&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:n&&"IntersectionObserver"in window,canUseViewport:n&&"screen"in window};t.Z=r},5742:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(3117),a=n(7294),o=n(3727),i=n(8780),l=n(2263),s=n(3919),u=n(412);const c=a.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:v=!0,...b}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),E=(0,a.useContext)(c),S=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>S.current));const x=f||p;const C=(0,s.Z)(x),_=x?.replace("pathname://","");let T=void 0!==_?(A=_,v&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&C&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,N=u.Z.canUseIntersectionObserver,O=(0,a.useRef)(),P=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!N&&C&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&O.current&&O.current.disconnect()})),[O,T,N,C]);const I=T?.startsWith("#")??!1,D=!T||!C||I;return D||g||E.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:S,href:T},x&&!C&&{target:"_blank",rel:"noopener noreferrer"},b)):a.createElement(R,(0,r.Z)({},b,{onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,N&&e&&C&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),O.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}var p=a.forwardRef(f)},1875:function(e,t){"use strict";t.Z=()=>null},5999:function(e,t,n){"use strict";n.d(t,{Z:function(){return s},I:function(){return l}});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:function(e,t,n){"use strict";n.d(t,{m:function(){return r}});const r="default"},3919:function(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:function(){return a},b:function(){return r}})},4996:function(e,t,n){"use strict";n.d(t,{C:function(){return o},Z:function(){return i}});var r=n(2263),a=n(3919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,r.Z)();return{withBaseUrl:(n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)}}function i(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},2263:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[a,o]=n;const i=r?`${r}.${a}`:a;var l;"object"==typeof(l=o)&&l&&Object.keys(l).length>0?e(o,i):t[i]=o}))}(e),t}},226:function(e,t,n){"use strict";n.d(t,{_:function(){return a},z:function(){return o}});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},143:function(e,t,n){"use strict";n.d(t,{Iw:function(){return h},gA:function(){return f},_r:function(){return c},Jo:function(){return g},zh:function(){return d},yW:function(){return m},gB:function(){return p}});var r=n(6550),a=n(2263),o=n(9935);function i(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=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=()=>i("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e)?.[t];if(!r&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return r}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(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})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&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 o}(t,n,e)}function p(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)}},8320:function(e,t,n){"use strict";n.r(t);var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={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()}};t.default=o},3310:function(e,t,n){"use strict";n.r(t);var r=n(1205),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a="iconExternalLink_nPIU";function o(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"}))}},3285:function(e,t,n){"use strict";n.d(t,{Z:function(){return dt}});var r=n(7294),a=n(4334),o=n(4763),i=n(1944),l=n(3117),s=n(6550),u=n(5999),c=n(5936);const d="docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(5281),v=n(9727),b="skipToContent_fXgn";function y(){return r.createElement(h,{className:b})}var w=n(6668),k=n(9689);function E(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}var S="closeButton_CVFx";function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.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}))}var C="content_knG7";function _(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(C,e.className),dangerouslySetInnerHTML:{__html:n}}))}var T="announcementBar_mb4j",A="announcementBarPlaceholder_vyr4",L="announcementBarClose_gvF7",R="announcementBarContent_xLdY";function N(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:A}),r.createElement(_,{className:R}),i&&r.createElement(x,{onClick:n,className:L}))}var O=n(2961),P=n(2466);var I=n(902),D=n(3102);const M=r.createContext(null);function F(e){let{children:t}=e;const n=function(){const e=(0,O.e)(),t=(0,D.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,I.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(M.Provider,{value:n},t)}function B(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function j(){const e=(0,r.useContext)(M);if(!e)throw new I.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,D.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:B(o)})),[a,o,t])}function z(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=j();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var U=n(2949),$=n(2389);function q(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function G(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}var H={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,value:n,onChange:o}=e;const i=(0,$.Z)(),l=(0,u.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"===n?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.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)(H.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",H.toggleButton,!i&&H.toggleButtonDisabled),type:"button",onClick:()=>o("dark"===n?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite"},r.createElement(q,{className:(0,a.Z)(H.toggleIcon,H.lightToggleIcon)}),r.createElement(G,{className:(0,a.Z)(H.toggleIcon,H.darkToggleIcon)})))}var V=r.memo(Z);function W(e){let{className:t}=e;const n=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,U.I)();return n?null:r.createElement(V,{className:t,value:a,onChange:o})}var Y=n(1327);function K(){return r.createElement(Y.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,O.e)();return r.createElement("button",{type:"button","aria-label":(0,u.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 X(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(K,null),r.createElement(W,{className:"margin-right--md"}),r.createElement(Q,null))}var J=n(9960),ee=n(4996),te=n(3919);function ne(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var re=n(9471);function ae(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,ee.Z)(a),p=(0,ee.Z)(t),m=(0,ee.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,te.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(re.Z,u&&{width:12,height:12}))};return o?r.createElement(J.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(J.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ne(n,t.pathname):t.pathname.startsWith(p)},d,g))}function oe(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ae,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ie(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ae,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function le(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ie:oe;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var se=n(6043),ue=n(8596),ce=n(2263);function de(e,t){return e.some((e=>function(e,t){return!!(0,ue.Mg)(e.to,t)||!!ne(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function fe(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ae,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>r.createElement(_e,(0,l.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=u.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function pe(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,ce.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=de(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,se.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ae,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(se.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(_e,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function me(e){let{mobile:t=!1,...n}=e;const a=t?pe:fe;return r.createElement(a,n)}var he=n(4711);function ge(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.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"}))}var ve="iconLanguage_nlXk";var be=n(1875),ye="searchBox_ZlJk";function we(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,ye)},t)}var ke=n(143),Ee=n(2802);var Se=n(373);const xe=e=>e.docs.find((t=>t.id===e.mainDocId));var Ce={default:le,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,ce.Z)(),f=(0,he.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(me,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(ge,{className:ve}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(we,{className:n},r.createElement(be.Z,null))},dropdown:me,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,ke.Iw)(a),s=(0,Ee.vY)(t,a);return null===s?null:r.createElement(le,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,ke.Iw)(a),s=(0,Ee.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(le,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,Ee.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(le,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,ke.Iw)(n),m=(0,ke.gB)(n),{savePreferredVersionName:h}=(0,Se.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??xe(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],v=(0,Ee.lO)(n)[0],b=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):v.label,y=t&&g.length>1?void 0:xe(v).path;return g.length<=1?r.createElement(le,(0,l.Z)({},c,{mobile:t,label:b,to:y,isActive:a?()=>!1:void 0})):r.createElement(me,(0,l.Z)({},c,{mobile:t,label:b,to:y,items:g,isActive:a?()=>!1:void 0}))}};function _e(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ce[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Te(){const e=(0,O.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(_e,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ae(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.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 Le(){const e=0===(0,w.L)().navbar.items.length,t=j();return r.createElement(r.Fragment,null,!e&&r.createElement(Ae,{onClick:()=>t.hide()}),t.content)}function Re(){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(X,null),primaryMenu:r.createElement(Te,null),secondaryMenu:r.createElement(Le,null)}):null}var Ne="navbarHideable_m1mJ",Oe="navbarHidden_jGov";function Pe(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ie(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,O.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,P.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{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:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ne,!s&&Oe],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Pe,{onClick:i.toggle}),r.createElement(Re,null))}function De(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Me(){const{toggle:e,shown:t}=(0,O.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.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(De,null))}var Fe="colorModeToggle_DEke";function Be(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(_e,(0,l.Z)({},e,{key:t})))))}function je(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 ze(){const e=(0,O.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(je,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Me,null),r.createElement(K,null),r.createElement(Be,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Be,{items:a}),r.createElement(W,{className:Fe}),!o&&r.createElement(we,null,r.createElement(be.Z,null)))})}function Ue(){return r.createElement(Ie,null,r.createElement(ze,null))}function $e(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,ee.Z)(n),c=(0,ee.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(J.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,te.Z)(a)&&r.createElement(re.Z,null))}function qe(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement($e,{item:t}))}function Ge(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(qe,{key:t,item:e})))))}function He(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Ge,{key:t,column:e}))))}function Ze(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function Ve(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement($e,{item:t})}function We(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(Ve,{item:e}),t.length!==n+1&&r.createElement(Ze,null))))))}function Ye(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(He,{columns:t}):r.createElement(We,{links:t})}var Ke=n(941),Qe="footerLogoLink_BH7S";function Xe(e){let{logo:t}=e;const{withBaseUrl:n}=(0,ee.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(Ke.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function Je(e){let{logo:t}=e;return t.href?r.createElement(J.Z,{href:t.href,className:Qe,target:t.target},r.createElement(Xe,{logo:t})):r.createElement(Xe,{logo:t})}function et(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function tt(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function nt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(tt,{style:o,links:n&&n.length>0&&r.createElement(Ye,{links:n}),logo:a&&r.createElement(Je,{logo:a}),copyright:t&&r.createElement(et,{copyright:t})})}var rt=r.memo(nt),at=n(12);const ot="docusaurus.tab.",it=r.createContext(void 0);const lt=(0,I.Qc)([U.S,k.pl,function(e){let{children:t}=e;const n=function(){const[e,t]=(0,r.useState)({}),n=(0,r.useCallback)(((e,t)=>{(0,at.W)(`${ot}${e}`).set(t)}),[]);(0,r.useEffect)((()=>{try{const e={};(0,at._)().forEach((t=>{if(t.startsWith(ot)){const n=t.substring(ot.length);e[n]=(0,at.W)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]);const a=(0,r.useCallback)(((e,r)=>{t((t=>({...t,[e]:r}))),n(e,r)}),[n]);return(0,r.useMemo)((()=>({tabGroupChoices:e,setTabGroupChoices:a})),[e,a])}();return r.createElement(it.Provider,{value:n},t)},P.OC,Se.L5,i.VC,function(e){let{children:t}=e;return r.createElement(D.n2,null,r.createElement(O.M,null,r.createElement(F,null,t)))}]);function st(e){let{children:t}=e;return r.createElement(lt,null,t)}function ut(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(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}var ct="mainWrapper_z2l0";function dt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,v.t)(),r.createElement(st,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(N,null),r.createElement(Ue,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,ct,l)},r.createElement(o.Z,{fallback:e=>r.createElement(ut,e)},t)),!n&&r.createElement(rt,null))}},1327:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(3117),a=n(7294),o=n(9960),i=n(4996),l=n(2263),s=n(6668),u=n(941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},197:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=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}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(3117),a=n(7294),o=n(4334),i=n(2389),l=n(2949),s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},6043:function(e,t,n){"use strict";n.d(t,{u:function(){return i},z:function(){return m}});var r=n(3117),a=n(7294),o=n(412);function i(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const l={display:"none",overflow:"hidden",height:"0px"},s={display:"block",overflow:"visible",height:"auto"};function u(e,t){const n=t?l:s;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function c(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??"ease-in-out"}`,height:`${t}px`}}function i(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return u(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function d(e){if(!o.Z.canUseDOM)return e?l:s}function f(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const f=(0,a.useRef)(null);return c({collapsibleRef:f,collapsed:n,animation:o}),a.createElement(t,{ref:f,style:s?void 0:d(n),onTransitionEnd:e=>{"height"===e.propertyName&&(u(f.current,n),i?.(n))},className:l},r)}function p(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(f,(0,r.Z)({},n,{collapsed:l})):null}function m(e){let{lazy:t,...n}=e;const r=t?p:f;return a.createElement(r,n)}},9689:function(e,t,n){"use strict";n.d(t,{nT:function(){return m},pl:function(){return p}});var r=n(7294),a=n(2389),o=n(12),i=n(902),l=n(6668);const s=(0,o.W)("docusaurus.announcement.dismiss"),u=(0,o.W)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!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()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:function(e,t,n){"use strict";n.d(t,{I:function(){return g},S:function(){return h}});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),u="theme",c=(0,i.W)(u),d="light",f="dark",p=e=>e===f?f:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,i]=(0,r.useState)((e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(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?(i(t),a&&(e=>{c.set(p(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f:d:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&s(p(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:o,setColorMode:s,get isDarkTheme(){return o===f},setLightTheme(){s(d)},setDarkTheme(){s(f)}})),[o,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 o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:function(e,t,n){"use strict";n.d(t,{J:function(){return y},L5:function(){return v}});var r=n(7294),a=n(143),o=n(9935),i=n(6668),l=n(2802),s=n(902),u=n(12);const c=e=>`docs-preferred-version-${e}`,d=(e,t,n)=>{(0,u.W)(c(e),{persistence:t}).set(n)},f=(e,t)=>(0,u.W)(c(e),{persistence:t}).get(),p=(e,t)=>{(0,u.W)(c(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,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=f(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(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 v(e){let{children:t}=e;return l.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(m);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:function(e,t,n){"use strict";n.d(t,{V:function(){return s},b:function(){return l}});var r=n(7294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},2961:function(e,t,n){"use strict";n.d(t,{M:function(){return f},e:function(){return p}});var r=n(7294),a=n(3102),o=n(7524),i=n(6550),l=n(902);function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6668);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,o.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)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:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=d();return r.createElement(c.Provider,{value:n},t)}function p(){const e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:function(e,t,n){"use strict";n.d(t,{HY:function(){return l},Zo:function(){return s},n2:function(){return i}});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,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}},9727:function(e,t,n){"use strict";n.d(t,{h:function(){return a},t:function(){return o}});var r=n(7294);const a="navigation-with-keyboard";function o(){(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)}}),[])}},7524:function(e,t,n){"use strict";n.d(t,{i:function(){return u}});var r=n(7294),a=n(412);const o="desktop",i="mobile",l="ssr";function s(){return a.Z.canUseDOM?window.innerWidth>996?o:i: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}},5281:function(e,t,n){"use strict";n.d(t,{k:function(){return 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:{}}},2802:function(e,t,n){"use strict";n.d(t,{Wl:function(){return f},_F:function(){return m},cE:function(){return d},hI:function(){return w},lO:function(){return v},vY:function(){return y},oz:function(){return b},s1:function(){return g}});var r=n(7294),a=n(6550),o=n(8790),i=n(143),l=n(373),s=n(1116);function u(e){return Array.from(new Set(e))}var c=n(8596);const d=!!i._r;function f(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=f(t);if(e)return e}}}const p=(e,t)=>void 0!==e&&(0,c.Mg)(e,t);function m(e,t){return"link"===e.type?p(e.href,t):"category"===e.type&&(p(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 o of t)if("category"===o.type&&((0,c.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,c.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function g(){const e=(0,s.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?h({sidebarItems:e.items,pathname:t}):null}function v(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function b(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function y(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`DocNavbarItem: 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)(),i=t.routes,l=i.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,o.H)(i),sidebarName:s,sidebarItems:u}}},1944:function(e,t,n){"use strict";n.d(t,{FG:function(){return f},d:function(){return c},VC:function(){return p}});var r=n(7294),a=n(7459),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2263);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.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}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},902:function(e,t,n){"use strict";n.d(t,{D9:function(){return i},Qc:function(){return u},Ql:function(){return s},i6:function(){return l},zX:function(){return o}});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8596:function(e,t,n){"use strict";n.d(t,{Mg:function(){return i},Ns:function(){return l}});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.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=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:function(e,t,n){"use strict";n.d(t,{Ct:function(){return f},OC:function(){return s},RF:function(){return d}});var r=n(7294),a=n(412),o=n(2389),i=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 i.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()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.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&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:function(e,t,n){"use strict";n.d(t,{HX:function(){return r},os:function(){return a}});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:function(e,t,n){"use strict";n.d(t,{W:function(){return l},_:function(){return s}});const r="localStorage";function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,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 i={get:()=>null,set:()=>{},del:()=>{}};function l(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}}(e);const n=a(t?.persistence);return null===n?i:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{n.setItem(e,t)}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{n.removeItem(e)}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}}}}function s(e){void 0===e&&(e=r);const t=a(e);if(!t)return[];const n=[];for(let r=0;r<t.length;r+=1){const e=t.key(r);null!==e&&n.push(e)}return n}},4711:function(e,t,n){"use strict";n.d(t,{l:function(){return o}});var r=n(2263),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},5936:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:function(e,t,n){"use strict";n.d(t,{L:function(){return a}});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:function(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(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},8780: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.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}})},9318:function(e,t,n){"use strict";n.d(t,{lX:function(){return w},q_:function(){return _},ob:function(){return p},PP:function(){return A},Ep:function(){return f}});var r=n(3117);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}var i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m},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 f(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 p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}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 o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}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;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var v="popstate",b="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,E=void 0===k?g:k,S=i.keyLength,x=void 0===S?6:S,C=e.basename?d(s(e.basename)):"";function _(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return C&&(o=c(o,C)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||P(_(e.state))}function N(){P(_(y()))}var O=!1;function P(e){if(O)O=!1,L();else{A.confirmTransitionTo(e,"POP",E,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(O=!0,F(a))}(e)}))}}var I=_(y()),D=[I.key];function M(e){return C+f(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(v,R),o&&window.addEventListener(b,N)):0===B&&(window.removeEventListener(v,R),o&&window.removeEventListener(b,N))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,E,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,E,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",E={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function C(e){window.location.replace(S(window.location.href)+"#"+e)}function _(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,v=e.basename?d(s(e.basename)):"",b=E[u],y=b.encodePath,w=b.decodePath;function _(){var e=w(x());return v&&(e=c(e,v)),p(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,R=null;function N(){var e,t,n=x(),r=y(n);if(n!==r)C(r);else{var a=_(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===f(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(f(t));-1===n&&(n=0);var r=D.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var O=x(),P=y(O);O!==P&&C(P);var I=_(),D=[f(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,N):0===F&&window.removeEventListener(k,N)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+y(v+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(v+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(f(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(v+t);x()!==a&&(R=t,C(a));var o=D.indexOf(f(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),v=o.map((function(e){return p(e,void 0,"string"==typeof e?h():e.key||h())})),b=f;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:v.length,action:"POP",location:v[g],index:g,entries:v,createHref:b,push:function(e,t){var r="PUSH",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?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=p(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<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:function(e,t,n){"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var v=i[g];if(!(o[v]||r&&r[v]||h&&h[v]||l&&l[v])){var b=f(n,v);try{u(t,v,b)}catch(y){}}}}return t}},1143:function(e){"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:function(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:function(e,t,n){"use strict";n.r(t)},2295:function(e,t,n){"use strict";n.r(t)},4865: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:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(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 o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{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,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(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&&p(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,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(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)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(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)},7418:function(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,o){for(var i,l,s=a(e),u=1;u<arguments.length;u++){for(var c in i=Object(arguments[u]))n.call(i,c)&&(s[c]=i[c]);if(t){l=t(i);for(var d=0;d<l.length;d++)r.call(i,l[d])&&(s[l[d]]=i[l[d]])}}return s}},9901:function(e){e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:function(e,t,n){const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:function(e,t,n){var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(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=o,e.exports=a,a.id=6726},6500:function(e,t,n){var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(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=o,e.exports=a,a.id=6500},9642:function(e){"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));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 i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.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(o,i,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 o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.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);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var b in p(v))if(b in c){f[v]=!0;break}for(var y in m=f)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 o=a?a.series:void 0,i=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 f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:function(e,t,n){"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:function(e,t,n){e.exports=n(2703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:function(e,t,n){"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=v.hasOwnProperty(t)?v[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(f.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=60103,S=60106,x=60107,C=60108,_=60114,T=60109,A=60110,L=60112,R=60113,N=60120,O=60115,P=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;E=j("react.element"),S=j("react.portal"),x=j("react.fragment"),C=j("react.strict_mode"),_=j("react.profiler"),T=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),N=j("react.suspense_list"),O=j("react.memo"),P=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case _:return"Profiler";case C:return"StrictMode";case R:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case O:return V(e.type);case I:return V(e._render);case P:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ue(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de="http://www.w3.org/1999/xhtml",fe="http://www.w3.org/2000/svg";function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,ve=(ge=function(e,t){if(e.namespaceURI!==fe||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function Ee(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ye).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xe(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function Ce(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Te=null,Ae=null,Le=null;function Re(e){if(e=ra(e)){if("function"!=typeof Te)throw Error(i(280));var t=e.stateNode;t&&(t=oa(t),Te(e.stateNode,e.type,t))}}function Ne(e){Ae?Le?Le.push(e):Le=[e]:Ae=e}function Oe(){if(Ae){var e=Ae,t=Le;if(Le=Ae=null,Re(e),t)for(e=0;e<t.length;e++)Re(t[e])}}function Pe(e,t){return e(t)}function Ie(e,t,n,r,a){return e(t,n,r,a)}function De(){}var Me=Pe,Fe=!1,Be=!1;function je(){null===Ae&&null===Le||(De(),Oe())}function ze(e,t){var n=e.stateNode;if(null===n)return null;var r=oa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var Ue=!1;if(d)try{var $e={};Object.defineProperty($e,"passive",{get:function(){Ue=!0}}),window.addEventListener("test",$e,$e),window.removeEventListener("test",$e,$e)}catch(ge){Ue=!1}function qe(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var Ge=!1,He=null,Ze=!1,Ve=null,We={onError:function(e){Ge=!0,He=e}};function Ye(e,t,n,r,a,o,i,l,s){Ge=!1,He=null,qe.apply(We,arguments)}function Ke(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ke(e)!==e)throw Error(i(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ke(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Xe(a),e;if(o===r)return Xe(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function et(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var tt,nt,rt,at,ot=!1,it=[],lt=null,st=null,ut=null,ct=new Map,dt=new Map,ft=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function mt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":lt=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":ut=null;break;case"pointerover":case"pointerout":ct.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":dt.delete(t.pointerId)}}function gt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=mt(t,n,r,a,o),null!==t&&(null!==(t=ra(t))&&nt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function vt(e){var t=na(e.target);if(null!==t){var n=Ke(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Qe(n)))return e.blockedOn=t,void at(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){rt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ra(n))&&nt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){bt(e)&&n.delete(t)}function wt(){for(ot=!1;0<it.length;){var e=it[0];if(null!==e.blockedOn){null!==(e=ra(e.blockedOn))&&tt(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&it.shift()}null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),null!==ut&&bt(ut)&&(ut=null),ct.forEach(yt),dt.forEach(yt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,wt)))}function Et(e){function t(t){return kt(t,e)}if(0<it.length){kt(it[0],e);for(var n=1;n<it.length;n++){var r=it[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==lt&&kt(lt,e),null!==st&&kt(st,e),null!==ut&&kt(ut,e),ct.forEach(t),dt.forEach(t),n=0;n<ft.length;n++)(r=ft[n]).blockedOn===e&&(r.blockedOn=null);for(;0<ft.length&&null===(n=ft[0]).blockedOn;)vt(n),null===n.blockedOn&&ft.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xt={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},Ct={},_t={};function Tt(e){if(Ct[e])return Ct[e];if(!xt[e])return e;var t,n=xt[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return Ct[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete xt.animationend.animation,delete xt.animationiteration.animation,delete xt.animationstart.animation),"TransitionEvent"in window||delete xt.transitionend.transition);var At=Tt("animationend"),Lt=Tt("animationiteration"),Rt=Tt("animationstart"),Nt=Tt("transitionend"),Ot=new Map,Pt=new Map,It=["abort","abort",At,"animationEnd",Lt,"animationIteration",Rt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Nt,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Pt.set(r,t),Ot.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Mt=8;function Ft(e){if(0!=(1&e))return Mt=15,1;if(0!=(2&e))return Mt=14,2;if(0!=(4&e))return Mt=13,4;var t=24&e;return 0!==t?(Mt=12,t):0!=(32&e)?(Mt=11,32):0!==(t=192&e)?(Mt=10,t):0!=(256&e)?(Mt=9,256):0!==(t=3584&e)?(Mt=8,t):0!=(4096&e)?(Mt=7,4096):0!==(t=4186112&e)?(Mt=6,t):0!==(t=62914560&e)?(Mt=5,t):67108864&e?(Mt=4,67108864):0!=(134217728&e)?(Mt=3,134217728):0!==(t=805306368&e)?(Mt=2,t):0!=(1073741824&e)?(Mt=1,1073741824):(Mt=8,e)}function Bt(e,t){var n=e.pendingLanes;if(0===n)return Mt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Mt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Ft(s),a=Mt):0!==(l&=o)&&(r=Ft(l),a=Mt)}else 0!==(o=n&~i)?(r=Ft(o),a=Mt):0!==l&&(r=Ft(l),a=Mt);if(0===r)return 0;if(r=n&((0>(r=31-Gt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Ft(t),a<=Mt)return t;Mt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-Gt(t)),r|=e[n],t&=~a;return r}function jt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function zt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ut(24&~t))?zt(10,t):e;case 10:return 0===(e=Ut(192&~t))?zt(8,t):e;case 8:return 0===(e=Ut(3584&~t))&&(0===(e=Ut(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Ut(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Ut(e){return e&-e}function $t(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function qt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Gt(t)]=n}var Gt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Ht(e)/Zt|0)|0},Ht=Math.log,Zt=Math.LN2;var Vt=o.unstable_UserBlockingPriority,Wt=o.unstable_runWithPriority,Yt=!0;function Kt(e,t,n,r){Fe||De();var a=Xt,o=Fe;Fe=!0;try{Ie(a,e,t,n,r)}finally{(Fe=o)||je()}}function Qt(e,t,n,r){Wt(Vt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var a;if(Yt)if((a=0==(4&t))&&0<it.length&&-1<pt.indexOf(e))e=mt(null,e,t,n,r),it.push(e);else{var o=Jt(e,t,n,r);if(null===o)a&&ht(e,r);else{if(a){if(-1<pt.indexOf(e))return e=mt(o,e,t,n,r),void it.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return lt=gt(lt,e,t,n,r,a),!0;case"dragenter":return st=gt(st,e,t,n,r,a),!0;case"mouseover":return ut=gt(ut,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ct.set(o,gt(ct.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,dt.set(o,gt(dt.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ht(e,r)}Dr(e,t,r,null,n)}}}function Jt(e,t,n,r){var a=_e(r);if(null!==(a=na(a))){var o=Ke(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Qe(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Dr(e,t,r,a,n),null}var en=null,tn=null,nn=null;function rn(){if(nn)return nn;var e,t,n=tn,r=n.length,a="value"in en?en.value:en.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return nn=a.slice(e,1<t?1-t:void 0)}function an(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function ln(){return!1}function sn(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?on:ln,this.isPropagationStopped=ln,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var un,cn,dn,fn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=sn(fn),mn=a({},fn,{view:0,detail:0}),hn=sn(mn),gn=a({},mn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:An,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==dn&&(dn&&"mousemove"===e.type?(un=e.screenX-dn.screenX,cn=e.screenY-dn.screenY):cn=un=0,dn=e),un)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),vn=sn(gn),bn=sn(a({},gn,{dataTransfer:0})),yn=sn(a({},mn,{relatedTarget:0})),wn=sn(a({},fn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=a({},fn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),En=sn(kn),Sn=sn(a({},fn,{data:0})),xn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Cn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Tn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function An(){return Tn}var Ln=a({},mn,{key:function(e){if(e.key){var t=xn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=an(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Cn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:An,charCode:function(e){return"keypress"===e.type?an(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?an(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Rn=sn(Ln),Nn=sn(a({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),On=sn(a({},mn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:An})),Pn=sn(a({},fn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=a({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dn=sn(In),Mn=[9,13,27,32],Fn=d&&"CompositionEvent"in window,Bn=null;d&&"documentMode"in document&&(Bn=document.documentMode);var jn=d&&"TextEvent"in window&&!Bn,zn=d&&(!Fn||Bn&&8<Bn&&11>=Bn),Un=String.fromCharCode(32),$n=!1;function qn(e,t){switch(e){case"keyup":return-1!==Mn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Hn=!1;var Zn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Zn[e.type]:"textarea"===t}function Wn(e,t,n,r){Ne(r),0<(t=Fr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Yn=null,Kn=null;function Qn(e){Lr(e,0)}function Xn(e){if(Q(aa(e)))return e}function Jn(e,t){if("change"===e)return t}var er=!1;if(d){var tr;if(d){var nr="oninput"in document;if(!nr){var rr=document.createElement("div");rr.setAttribute("oninput","return;"),nr="function"==typeof rr.oninput}tr=nr}else tr=!1;er=tr&&(!document.documentMode||9<document.documentMode)}function ar(){Yn&&(Yn.detachEvent("onpropertychange",or),Kn=Yn=null)}function or(e){if("value"===e.propertyName&&Xn(Kn)){var t=[];if(Wn(t,Kn,e,_e(e)),e=Qn,Fe)e(t);else{Fe=!0;try{Pe(e,t)}finally{Fe=!1,je()}}}}function ir(e,t,n){"focusin"===e?(ar(),Kn=n,(Yn=t).attachEvent("onpropertychange",or)):"focusout"===e&&ar()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Kn)}function sr(e,t){if("click"===e)return Xn(t)}function ur(e,t){if("input"===e||"change"===e)return Xn(t)}var cr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},dr=Object.prototype.hasOwnProperty;function fr(e,t){if(cr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!dr.call(t,n[r])||!cr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function mr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function vr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,yr=null,wr=null,kr=null,Er=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Er||null==yr||yr!==X(r)||("selectionStart"in(r=yr)&&vr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&fr(kr,r)||(kr=r,0<(r=Fr(wr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(It,2);for(var xr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Cr=0;Cr<xr.length;Cr++)Pt.set(xr[Cr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Tr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Ar(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Ye.apply(this,arguments),Ge){if(!Ge)throw Error(i(198));var c=He;Ge=!1,He=null,Ze||(Ze=!0,Ve=c)}}(r,t,void 0,e),e.currentTarget=null}function Lr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Ar(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Ar(a,l,u),o=s}}}if(Ze)throw e=Ve,Ze=!1,Ve=null,e}function Rr(e,t){var n=ia(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var Nr="_reactListening"+Math.random().toString(36).slice(2);function Or(e){e[Nr]||(e[Nr]=!0,l.forEach((function(t){Tr.has(t)||Pr(t,!1,e,null),Pr(t,!0,e,null)})))}function Pr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Tr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=ia(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Ir(o,e,a,t),i.add(l))}function Ir(e,t,n,r){var a=Pt.get(t);switch(void 0===a?2:a){case 0:a=Kt;break;case 1:a=Qt;break;default:a=Xt}n=a.bind(null,t,n,e),a=void 0,!Ue||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=na(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Be)return e(t,n);Be=!0;try{Me(e,t,n)}finally{Be=!1,je()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Ot.get(e);if(void 0!==l){var s=pn,u=e;switch(e){case"keypress":if(0===an(n))break e;case"keydown":case"keyup":s=Rn;break;case"focusin":u="focus",s=yn;break;case"focusout":u="blur",s=yn;break;case"beforeblur":case"afterblur":s=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=vn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=On;break;case At:case Lt:case Rt:s=wn;break;case Nt:s=Pn;break;case"scroll":s=hn;break;case"wheel":s=Dn;break;case"copy":case"cut":case"paste":s=En;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Nn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==f&&(null!=(h=ze(m,f))&&c.push(Mr(m,h,p)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!na(u)&&!u[ea])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?na(u):null)&&(u!==(d=Ke(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=vn,h="onMouseLeave",f="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Nn,h="onPointerLeave",f="onPointerEnter",m="pointer"),d=null==s?l:aa(s),p=null==u?l:aa(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=p,h=null,na(a)===r&&((c=new c(f,m+"enter",u,n,a)).target=p,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(f=u,m=0,p=c=s;p;p=Br(p))m++;for(p=0,h=f;h;h=Br(h))p++;for(;0<m-p;)c=Br(c),m--;for(;0<p-m;)f=Br(f),p--;for(;m--;){if(c===f||null!==f&&c===f.alternate)break e;c=Br(c),f=Br(f)}c=null}else c=null;null!==s&&jr(i,l,s,c,!1),null!==u&&null!==d&&jr(i,d,u,c,!0)}if("select"===(s=(l=r?aa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Jn;else if(Vn(l))if(er)g=ur;else{g=lr;var v=ir}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=sr);switch(g&&(g=g(e,r))?Wn(i,g,n,a):(v&&v(e,l,r),"focusout"===e&&(v=l._wrapperState)&&v.controlled&&"number"===l.type&&ae(l,"number",l.value)),v=r?aa(r):window,e){case"focusin":(Vn(v)||"true"===v.contentEditable)&&(yr=v,wr=r,kr=null);break;case"focusout":kr=wr=yr=null;break;case"mousedown":Er=!0;break;case"contextmenu":case"mouseup":case"dragend":Er=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var b;if(Fn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Hn?qn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(zn&&"ko"!==n.locale&&(Hn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Hn&&(b=rn()):(tn="value"in(en=a)?en.value:en.textContent,Hn=!0)),0<(v=Fr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:v}),b?y.data=b:null!==(b=Gn(n))&&(y.data=b))),(b=jn?function(e,t){switch(e){case"compositionend":return Gn(t);case"keypress":return 32!==t.which?null:($n=!0,Un);case"textInput":return(e=t.data)===Un&&$n?null:e;default:return null}}(e,n):function(e,t){if(Hn)return"compositionend"===e||!Fn&&qn(e,t)?(e=rn(),nn=tn=en=null,Hn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return zn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Fr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b))}Lr(i,t)}))}function Mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Fr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=ze(e,n))&&r.unshift(Mr(e,o,a)),null!=(o=ze(e,t))&&r.push(Mr(e,o,a))),e=e.return}return r}function Br(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function jr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=ze(n,o))&&i.unshift(Mr(n,s,l)):a||null!=(s=ze(n,o))&&i.push(Mr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function zr(){}var Ur=null,$r=null;function qr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Gr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Hr="function"==typeof setTimeout?setTimeout:void 0,Zr="function"==typeof clearTimeout?clearTimeout:void 0;function Vr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Wr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Yr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Kr=0;var Qr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Qr,Jr="__reactProps$"+Qr,ea="__reactContainer$"+Qr,ta="__reactEvents$"+Qr;function na(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ea]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Yr(e);null!==e;){if(n=e[Xr])return n;e=Yr(e)}return t}n=(e=n).parentNode}return null}function ra(e){return!(e=e[Xr]||e[ea])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function aa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oa(e){return e[Jr]||null}function ia(e){var t=e[ta];return void 0===t&&(t=e[ta]=new Set),t}var la=[],sa=-1;function ua(e){return{current:e}}function ca(e){0>sa||(e.current=la[sa],la[sa]=null,sa--)}function da(e,t){sa++,la[sa]=e.current,e.current=t}var fa={},pa=ua(fa),ma=ua(!1),ha=fa;function ga(e,t){var n=e.type.contextTypes;if(!n)return fa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function va(e){return null!=(e=e.childContextTypes)}function ba(){ca(ma),ca(pa)}function ya(e,t,n){if(pa.current!==fa)throw Error(i(168));da(pa,t),da(ma,n)}function wa(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function ka(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fa,ha=pa.current,da(pa,e),da(ma,ma.current),!0}function Ea(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wa(e,t,ha),r.__reactInternalMemoizedMergedChildContext=e,ca(ma),ca(pa),da(pa,e)):ca(ma),da(ma,n)}var Sa=null,xa=null,Ca=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ta=o.unstable_cancelCallback,Aa=o.unstable_shouldYield,La=o.unstable_requestPaint,Ra=o.unstable_now,Na=o.unstable_getCurrentPriorityLevel,Oa=o.unstable_ImmediatePriority,Pa=o.unstable_UserBlockingPriority,Ia=o.unstable_NormalPriority,Da=o.unstable_LowPriority,Ma=o.unstable_IdlePriority,Fa={},Ba=void 0!==La?La:function(){},ja=null,za=null,Ua=!1,$a=Ra(),qa=1e4>$a?Ra:function(){return Ra()-$a};function Ga(){switch(Na()){case Oa:return 99;case Pa:return 98;case Ia:return 97;case Da:return 96;case Ma:return 95;default:throw Error(i(332))}}function Ha(e){switch(e){case 99:return Oa;case 98:return Pa;case 97:return Ia;case 96:return Da;case 95:return Ma;default:throw Error(i(332))}}function Za(e,t){return e=Ha(e),Ca(e,t)}function Va(e,t,n){return e=Ha(e),_a(e,t,n)}function Wa(){if(null!==za){var e=za;za=null,Ta(e)}Ya()}function Ya(){if(!Ua&&null!==ja){Ua=!0;var e=0;try{var t=ja;Za(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),ja=null}catch(n){throw null!==ja&&(ja=ja.slice(e+1)),_a(Oa,Wa),n}finally{Ua=!1}}}var Ka=k.ReactCurrentBatchConfig;function Qa(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Xa=ua(null),Ja=null,eo=null,to=null;function no(){to=eo=Ja=null}function ro(e){var t=Xa.current;ca(Xa),e.type._context._currentValue=t}function ao(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function oo(e,t){Ja=e,to=eo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Fi=!0),e.firstContext=null)}function io(e,t){if(to!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(to=e,t=1073741823),t={context:e,observedBits:t,next:null},null===eo){if(null===Ja)throw Error(i(308));eo=t,Ja.dependencies={lanes:0,firstContext:t,responders:null}}else eo=eo.next=t;return e._currentValue}var lo=!1;function so(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function uo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function co(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function fo(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function mo(e,t,n,r){var o=e.updateQueue;lo=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(p,f,s);break e}f=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(p,f,s):m))break e;f=a({},f,s);break e;case 2:lo=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=f}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var go=(new r.Component).refs;function vo(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&Ke(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=co(r,a);o.payload=t,null!=n&&(o.callback=n),fo(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=co(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),fo(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=co(n,r);a.tag=2,null!=t&&(a.callback=t),fo(e,a),ms(e,r,n)}};function yo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!fr(n,r)||!fr(a,o))}function wo(e,t,n){var r=!1,a=fa,o=t.contextType;return"object"==typeof o&&null!==o?o=io(o):(a=va(t)?ha:pa.current,o=(r=null!=(r=t.contextTypes))?ga(e,a):fa),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function ko(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function Eo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=go,so(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=io(o):(o=va(t)?ha:pa.current,a.context=ga(e,o)),mo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(vo(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),mo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function xo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===go&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Co(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=xo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=xo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Qs(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Ws(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case E:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=xo(e,null,t),n.return=e,n;case S:return(t=Qs(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Ws(t,e.mode,n,null)).return=e,t;Co(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case E:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case S:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);Co(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case E:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);Co(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var v=p(a,d,l[h],s);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(a,d),i=o(v,i,h),null===c?u=v:c.sibling=v,c=v,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,v=null,b=s.next();null!==h&&!b.done;g++,b=s.next()){h.index>g?(v=h,h=null):v=h.sibling;var y=p(a,h,b.value,u);if(null===y){null===h&&(h=v);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=v}if(b.done)return n(a,h),c;if(null===h){for(;!b.done;g++,b=s.next())null!==(b=f(a,b.value,u))&&(l=o(b,l,g),null===d?c=b:d.sibling=b,d=b);return c}for(h=r(a,h);!b.done;g++,b=s.next())null!==(b=m(h,a,g,b.value,u))&&(e&&null!==b.alternate&&h.delete(null===b.key?g:b.key),l=o(b,l,g),null===d?c=b:d.sibling=b,d=b);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case E:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=xo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Ws(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=xo(e,r,o),s.return=e,e=s)}return l(e);case S:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Qs(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&Co(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var To=_o(!0),Ao=_o(!1),Lo={},Ro=ua(Lo),No=ua(Lo),Oo=ua(Lo);function Po(e){if(e===Lo)throw Error(i(174));return e}function Io(e,t){switch(da(Oo,t),da(No,e),da(Ro,Lo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:me(null,"");break;default:t=me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ca(Ro),da(Ro,t)}function Do(){ca(Ro),ca(No),ca(Oo)}function Mo(e){Po(Oo.current);var t=Po(Ro.current),n=me(t,e.type);t!==n&&(da(No,e),da(Ro,n))}function Fo(e){No.current===e&&(ca(Ro),ca(No))}var Bo=ua(0);function jo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var zo=null,Uo=null,$o=!1;function qo(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Go(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Ho(e){if($o){var t=Uo;if(t){var n=t;if(!Go(e,t)){if(!(t=Wr(n.nextSibling))||!Go(e,t))return e.flags=-1025&e.flags|2,$o=!1,void(zo=e);qo(zo,n)}zo=e,Uo=Wr(t.firstChild)}else e.flags=-1025&e.flags|2,$o=!1,zo=e}}function Zo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;zo=e}function Vo(e){if(e!==zo)return!1;if(!$o)return Zo(e),$o=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Gr(t,e.memoizedProps))for(t=Uo;t;)qo(e,t),t=Wr(t.nextSibling);if(Zo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Uo=Wr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Uo=null}}else Uo=zo?Wr(e.stateNode.nextSibling):null;return!0}function Wo(){Uo=zo=null,$o=!1}var Yo=[];function Ko(){for(var e=0;e<Yo.length;e++)Yo[e]._workInProgressVersionPrimary=null;Yo.length=0}var Qo=k.ReactCurrentDispatcher,Xo=k.ReactCurrentBatchConfig,Jo=0,ei=null,ti=null,ni=null,ri=!1,ai=!1;function oi(){throw Error(i(321))}function ii(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!cr(e[n],t[n]))return!1;return!0}function li(e,t,n,r,a,o){if(Jo=o,ei=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Qo.current=null===e||null===e.memoizedState?Pi:Ii,e=n(r,a),ai){o=0;do{if(ai=!1,!(25>o))throw Error(i(301));o+=1,ni=ti=null,t.updateQueue=null,Qo.current=Di,e=n(r,a)}while(ai)}if(Qo.current=Oi,t=null!==ti&&null!==ti.next,Jo=0,ni=ti=ei=null,ri=!1,t)throw Error(i(300));return e}function si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ni?ei.memoizedState=ni=e:ni=ni.next=e,ni}function ui(){if(null===ti){var e=ei.alternate;e=null!==e?e.memoizedState:null}else e=ti.next;var t=null===ni?ei.memoizedState:ni.next;if(null!==t)ni=t,ti=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ti=e).memoizedState,baseState:ti.baseState,baseQueue:ti.baseQueue,queue:ti.queue,next:null},null===ni?ei.memoizedState=ni=e:ni=ni.next=e}return ni}function ci(e,t){return"function"==typeof t?t(e):t}function di(e){var t=ui(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ti,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Jo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,ei.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,cr(r,t.memoizedState)||(Fi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function fi(e){var t=ui(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);cr(o,t.memoizedState)||(Fi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Jo&e)===e)&&(t._workInProgressVersionPrimary=r,Yo.push(t))),e)return n(t._source);throw Yo.push(t),Error(i(350))}function mi(e,t,n,r){var a=Pl;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Qo.current,u=s.useState((function(){return pi(a,t,n)})),c=u[1],d=u[0];u=ni;var f=e.memoizedState,p=f.refs,m=p.getSnapshot,h=f.source;f=f.subscribe;var g=ei;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!cr(l,e)){e=n(t._source),cr(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-Gt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),cr(m,n)&&cr(h,t)&&cr(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:d}).dispatch=c=Ni.bind(null,ei,e),u.queue=e,u.baseQueue=null,d=pi(a,t,n),u.memoizedState=u.baseState=d),d}function hi(e,t,n){return mi(ui(),e,t,n)}function gi(e){var t=si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:e}).dispatch=Ni.bind(null,ei,e),[t.memoizedState,e]}function vi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ei.updateQueue)?(t={lastEffect:null},ei.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},si().memoizedState=e}function yi(){return ui().memoizedState}function wi(e,t,n,r){var a=si();ei.flags|=e,a.memoizedState=vi(1|t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var a=ui();r=void 0===r?null:r;var o=void 0;if(null!==ti){var i=ti.memoizedState;if(o=i.destroy,null!==r&&ii(r,i.deps))return void vi(t,n,o,r)}ei.flags|=e,a.memoizedState=vi(1|t,n,o,r)}function Ei(e,t){return wi(516,4,e,t)}function Si(e,t){return ki(516,4,e,t)}function xi(e,t){return ki(4,2,e,t)}function Ci(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,2,Ci.bind(null,t,e),n)}function Ti(){}function Ai(e,t){var n=ui();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Li(e,t){var n=ui();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ri(e,t){var n=Ga();Za(98>n?98:n,(function(){e(!0)})),Za(97<n?97:n,(function(){var n=Xo.transition;Xo.transition=1;try{e(!1),t()}finally{Xo.transition=n}}))}function Ni(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===ei||null!==i&&i===ei)ai=ri=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,cr(s,l))return}catch(u){}ms(e,a,r)}}var Oi={readContext:io,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Pi={readContext:io,useCallback:function(e,t){return si().memoizedState=[e,void 0===t?null:t],e},useContext:io,useEffect:Ei,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,Ci.bind(null,t,e),n)},useLayoutEffect:function(e,t){return wi(4,2,e,t)},useMemo:function(e,t){var n=si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ni.bind(null,ei,e),[r.memoizedState,e]},useRef:bi,useState:gi,useDebugValue:Ti,useDeferredValue:function(e){var t=gi(e),n=t[0],r=t[1];return Ei((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=gi(!1),t=e[0];return bi(e=Ri.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=si();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},mi(r,e,t,n)},useOpaqueIdentifier:function(){if($o){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Kr++).toString(36))),Error(i(355))})),n=gi(t)[1];return 0==(2&ei.mode)&&(ei.flags|=516,vi(5,(function(){n("r:"+(Kr++).toString(36))}),void 0,null)),t}return gi(t="r:"+(Kr++).toString(36)),t},unstable_isNewReconciler:!1},Ii={readContext:io,useCallback:Ai,useContext:io,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:xi,useMemo:Li,useReducer:di,useRef:yi,useState:function(){return di(ci)},useDebugValue:Ti,useDeferredValue:function(e){var t=di(ci),n=t[0],r=t[1];return Si((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=di(ci)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ci)[0]},unstable_isNewReconciler:!1},Di={readContext:io,useCallback:Ai,useContext:io,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:xi,useMemo:Li,useReducer:fi,useRef:yi,useState:function(){return fi(ci)},useDebugValue:Ti,useDeferredValue:function(e){var t=fi(ci),n=t[0],r=t[1];return Si((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=fi(ci)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return fi(ci)[0]},unstable_isNewReconciler:!1},Mi=k.ReactCurrentOwner,Fi=!1;function Bi(e,t,n,r){t.child=null===e?Ao(t,null,n,r):To(t,e.child,n,r)}function ji(e,t,n,r,a){n=n.render;var o=t.ref;return oo(t,a),r=li(e,t,n,r,o,a),null===e||Fi?(t.flags|=1,Bi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function zi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Ui(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:fr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function Ui(e,t,n,r,a,o){if(null!==e&&fr(e.memoizedProps,r)&&e.ref===t.ref){if(Fi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Fi=!0)}return Gi(e,t,n,r,o)}function $i(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Es(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Es(t,e),null;t.memoizedState={baseLanes:0},Es(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Es(t,r);return Bi(e,t,a,n),t.child}function qi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Gi(e,t,n,r,a){var o=va(n)?ha:pa.current;return o=ga(t,o),oo(t,a),n=li(e,t,n,r,o,a),null===e||Fi?(t.flags|=1,Bi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Hi(e,t,n,r,a){if(va(n)){var o=!0;ka(t)}else o=!1;if(oo(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),wo(t,n,r),Eo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=io(u):u=ga(t,u=va(n)?ha:pa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&ko(t,i,r,u),lo=!1;var f=t.memoizedState;i.state=f,mo(t,r,i,a),s=t.memoizedState,l!==r||f!==s||ma.current||lo?("function"==typeof c&&(vo(t,n,c,r),s=t.memoizedState),(l=lo||yo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,uo(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Qa(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=io(s):s=ga(t,s=va(n)?ha:pa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&ko(t,i,r,s),lo=!1,f=t.memoizedState,i.state=f,mo(t,r,i,a);var m=t.memoizedState;l!==d||f!==m||ma.current||lo?("function"==typeof p&&(vo(t,n,p,r),m=t.memoizedState),(u=lo||yo(t,n,u,r,f,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return Zi(e,t,n,r,o,a)}function Zi(e,t,n,r,a,o){qi(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&Ea(t,n,!1),ol(e,t,o);r=t.stateNode,Mi.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=To(t,e.child,null,o),t.child=To(t,null,l,o)):Bi(e,t,l,o),t.memoizedState=r.state,a&&Ea(t,n,!0),t.child}function Vi(e){var t=e.stateNode;t.pendingContext?ya(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ya(0,t.context,!1),Io(e,t.containerInfo)}var Wi,Yi,Ki,Qi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Bo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),da(Bo,1&o),null===e?(void 0!==a.fallback&&Ho(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,t.lanes=33554432,e):((n=Ys({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Qi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ys(t,a,0,null),n=Ws(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Ws(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ao(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Bi(e,t,r.children,n),0!=(2&(r=Bo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(da(Bo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===jo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===jo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!$o)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return va(t.type)&&ba(),null;case 3:return Do(),ca(ma),ca(pa),Ko(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Vo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Fo(t);var o=Po(Oo.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Po(Ro.current),Vo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Jr]=l,n){case"dialog":Rr("cancel",r),Rr("close",r);break;case"iframe":case"object":case"embed":Rr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Rr(_r[e],r);break;case"source":Rr("error",r);break;case"img":case"image":case"link":Rr("error",r),Rr("load",r);break;case"details":Rr("toggle",r);break;case"input":ee(r,l),Rr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Rr("invalid",r);break;case"textarea":se(r,l),Rr("invalid",r)}for(var u in xe(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Rr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=zr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de&&(e=pe(n)),e===de?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Xr]=t,e[Jr]=r,Wi(e,t),t.stateNode=e,u=Ce(n,r),n){case"dialog":Rr("cancel",e),Rr("close",e),o=r;break;case"iframe":case"object":case"embed":Rr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Rr(_r[o],e);o=r;break;case"source":Rr("error",e),o=r;break;case"img":case"image":case"link":Rr("error",e),Rr("load",e),o=r;break;case"details":Rr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Rr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Rr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Rr("invalid",e);break;default:o=r}xe(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?Ee(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ve(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Rr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=zr)}qr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Po(Oo.current),Po(Ro.current),Vo(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return ca(Bo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Vo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Bo.current)?0===Bl&&(Bl=3):(0!==Bl&&3!==Bl||(Bl=4),null===Pl||0==(134217727&Ul)&&0==(134217727&$l)||bs(Pl,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Do(),null===e&&Or(t.stateNode.containerInfo),null;case 10:return ro(t),null;case 19:if(ca(Bo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Bl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=jo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return da(Bo,1&Bo.current|2),t.child}e=e.sibling}null!==r.tail&&qa()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=jo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!$o)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*qa()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=qa(),n.sibling=null,t=Bo.current,da(Bo,l?1&t|2:1&t),n):null;case 23:case 24:return Ss(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:va(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Do(),ca(ma),ca(pa),Ko(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Fo(e),null;case 13:return ca(Bo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ca(Bo),null;case 4:return Do(),null;case 10:return ro(e),null;case 23:case 24:return Ss(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Wi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Yi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Po(Ro.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=zr)}for(d in xe(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Rr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=co(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Ql=r),cl(0,t)},n}function pl(e,t,n){(n=co(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Qa(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Vr(t.stateNode.containerInfo))}throw Error(i(163))}function vl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Qa(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ho(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ho(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&qr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&Et(n)))))}throw Error(i(163))}function bl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=ke("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(xa&&"function"==typeof xa.onCommitFiberUnmount)try{xa.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:Cl(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function El(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Sl(e,n,t):xl(e,n,t)}function Sl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=zr));else if(4!==r&&null!==(e=e.child))for(Sl(e,t,n),e=e.sibling;null!==e;)Sl(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function Cl(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function _l(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),Ce(e,a),t=Ce(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?Ee(n,s):"dangerouslySetInnerHTML"===l?ve(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,Et(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=qa(),bl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void bl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,Nl=k.ReactCurrentOwner,Ol=0,Pl=null,Il=null,Dl=0,Ml=0,Fl=ua(0),Bl=0,jl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=qa()+500}var Wl,Yl=null,Kl=!1,Ql=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Ol)?qa():-1!==ls?ls:ls=qa()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Ga()?1:2;if(0===ss&&(ss=zl),0!==Ka.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Ga(),0!=(4&Ol)&&98===e?e=zt(12,ss):e=zt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;qt(e,t,n),e===Pl&&($l|=t,4===Bl&&bs(e,Dl));var r=Ga();1===t?0!=(8&Ol)&&0==(48&Ol)?ys(e):(gs(e,n),0===Ol&&(Vl(),Wa())):(0==(4&Ol)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-Gt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Ft(u);var d=Mt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Bt(e,e===Pl?Dl:0),t=Mt,0===r)null!==n&&(n!==Fa&&Ta(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Fa&&Ta(n)}15===t?(n=ys.bind(null,e),null===ja?(ja=[n],za=_a(Oa,Ya)):ja.push(n),n=Fa):14===t?n=Va(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Va(n,vs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function vs(e){if(ls=-1,us=ss=0,0!=(48&Ol))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Bt(e,e===Pl?Dl:0);if(0===n)return null;var r=n,a=Ol;Ol|=16;var o=_s();for(Pl===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){Cs(e,s)}if(no(),Rl.current=o,Ol=a,null!==Il?r=0:(Pl=null,Dl=0,r=Bl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Ol|=64,e.hydrate&&(e.hydrate=!1,Vr(e.containerInfo)),0!==(n=jt(e))&&(r=Ts(e,n))),1===r)throw t=jl,xs(e,0),bs(e,n),gs(e,qa()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Os(e);break;case 3:if(bs(e,n),(62914560&n)===n&&10<(r=Hl+500-qa())){if(0!==Bt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Hr(Os.bind(null,e),r);break}Os(e);break;case 4:if(bs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-Gt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=qa()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Hr(Os.bind(null,e),n);break}Os(e);break;default:throw Error(i(329))}}return gs(e,qa()),e.callbackNode===t?vs.bind(null,e):null}function bs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Gt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Ol))throw Error(i(327));if(Ds(),e===Pl&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Bt(e,t)))}else n=Ts(e,t=Bt(e,0));if(0!==e.tag&&2===n&&(Ol|=64,e.hydrate&&(e.hydrate=!1,Vr(e.containerInfo)),0!==(t=jt(e))&&(n=Ts(e,t))),1===n)throw n=jl,xs(e,0),bs(e,t),gs(e,qa()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Os(e),gs(e,qa()),null}function ws(e,t){var n=Ol;Ol|=1;try{return e(t)}finally{0===(Ol=n)&&(Vl(),Wa())}}function ks(e,t){var n=Ol;Ol&=-2,Ol|=8;try{return e(t)}finally{0===(Ol=n)&&(Vl(),Wa())}}function Es(e,t){da(Fl,Ml),Ml|=t,zl|=t}function Ss(){Ml=Fl.current,ca(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Zr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Do(),ca(ma),ca(pa),Ko();break;case 5:Fo(r);break;case 4:Do();break;case 13:case 19:ca(Bo);break;case 10:ro(r);break;case 23:case 24:Ss()}n=n.return}Pl=e,Il=Zs(e.current,null),Dl=Ml=zl=t,Bl=0,jl=null,ql=$l=Ul=0}function Cs(e,t){for(;;){var n=Il;try{if(no(),Qo.current=Oi,ri){for(var r=ei.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ri=!1}if(Jo=0,ni=ti=ei=null,ai=!1,Nl.current=null,null===n||null===n.return){Bl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Bo.current),f=i;do{var p;if(p=13===f.tag){var m=f.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=f.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var v=new Set;v.add(u),f.updateQueue=v}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var b=co(-1,1);b.tag=2,fo(l,b)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bl&&(Bl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,po(f,fl(0,o,t));break e;case 1:o=s;var k=f.type,E=f.stateNode;if(0==(64&f.flags)&&("function"==typeof k.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Xl||!Xl.has(E)))){f.flags|=4096,t&=-t,f.lanes|=t,po(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}Ns(n)}catch(S){t=S,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function _s(){var e=Rl.current;return Rl.current=Oi,null===e?Oi:e}function Ts(e,t){var n=Ol;Ol|=16;var r=_s();for(Pl===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){Cs(e,a)}if(no(),Ol=n,Rl.current=r,null!==Il)throw Error(i(261));return Pl=null,Dl=0,Bl}function As(){for(;null!==Il;)Rs(Il)}function Ls(){for(;null!==Il&&!Aa();)Rs(Il)}function Rs(e){var t=Wl(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Ns(e):Il=t,Nl.current=null}function Ns(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Bl&&(Bl=5)}function Os(e){var t=Ga();return Za(99,Ps.bind(null,e,t)),null}function Ps(e,t){do{Ds()}while(null!==es);if(0!=(48&Ol))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-Gt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Pl&&(Il=Pl=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Ol,Ol|=32,Nl.current=null,Ur=Yt,vr(l=gr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(_){s=null;break e}var d=0,f=-1,p=-1,m=0,h=0,g=l,v=null;t:for(;;){for(var b;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(b=g.firstChild);)v=g,g=b;for(;;){if(g===l)break t;if(v===s&&++m===o&&(f=d),v===u&&++h===c&&(p=d),null!==(b=g.nextSibling))break;v=(g=v).parentNode}g=b}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;$r={focusedElem:l,selectionRange:s},Yt=!1,cs=null,ds=!1,Yl=r;do{try{Is()}catch(_){if(null===Yl)throw Error(i(330));zs(Yl,_),Yl=Yl.nextEffect}}while(null!==Yl);cs=null,Yl=r;do{try{for(l=e;null!==Yl;){var y=Yl.flags;if(16&y&&be(Yl.stateNode,""),128&y){var w=Yl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:El(Yl),Yl.flags&=-3;break;case 6:El(Yl),Yl.flags&=-3,_l(Yl.alternate,Yl);break;case 1024:Yl.flags&=-1025;break;case 1028:Yl.flags&=-1025,_l(Yl.alternate,Yl);break;case 4:_l(Yl.alternate,Yl);break;case 8:Cl(l,s=Yl);var E=s.alternate;wl(s),null!==E&&wl(E)}Yl=Yl.nextEffect}}catch(_){if(null===Yl)throw Error(i(330));zs(Yl,_),Yl=Yl.nextEffect}}while(null!==Yl);if(k=$r,w=gr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&vr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,E=Math.min(l.start,s),l=void 0===l.end?E:Math.min(l.end,s),!k.extend&&E>l&&(s=l,l=E,E=s),s=mr(y,E),o=mr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),E>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Yt=!!Ur,$r=Ur=null,e.current=n,Yl=r;do{try{for(y=e;null!==Yl;){var S=Yl.flags;if(36&S&&vl(y,Yl.alternate,Yl),128&S){w=void 0;var x=Yl.ref;if(null!==x){var C=Yl.stateNode;Yl.tag,w=C,"function"==typeof x?x(w):x.current=w}}Yl=Yl.nextEffect}}catch(_){if(null===Yl)throw Error(i(330));zs(Yl,_),Yl=Yl.nextEffect}}while(null!==Yl);Yl=null,Ba(),Ol=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Yl=r;null!==Yl;)t=Yl.nextEffect,Yl.nextEffect=null,8&Yl.flags&&((S=Yl).sibling=null,S.stateNode=null),Yl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,xa&&"function"==typeof xa.onCommitFiberRoot)try{xa.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(_){}if(gs(e,qa()),Kl)throw Kl=!1,e=Ql,Ql=null,e;return 0!=(8&Ol)||Wa(),null}function Is(){for(;null!==Yl;){var e=Yl.alternate;ds||null===cs||(0!=(8&Yl.flags)?et(Yl,cs)&&(ds=!0):13===Yl.tag&&Al(e,Yl)&&et(Yl,cs)&&(ds=!0));var t=Yl.flags;0!=(256&t)&&gl(e,Yl),0==(512&t)||Jl||(Jl=!0,Va(97,(function(){return Ds(),null}))),Yl=Yl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Za(e,Bs)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Va(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Va(97,(function(){return Ds(),null})))}function Bs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Ol))throw Error(i(331));var t=Ol;Ol|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Ol=t,Wa(),!0}function js(e,t,n){fo(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=hs(e,1))&&(qt(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)js(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){js(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=ul(t,e),1);if(fo(n,a),a=fs(),null!==(n=hs(n,1)))qt(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Pl===e&&(Dl&n)===n&&(4===Bl||3===Bl&&(62914560&Dl)===Dl&&500>qa()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ga()?1:2:(0===ss&&(ss=zl),0===(t=Ut(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=hs(e,t))&&(qt(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Ws(n.children,a,o,t);case M:l=8,a|=16;break;case C:l=8,a|=1;break;case _:return(e=Gs(12,n,t,8|a)).elementType=_,e.type=_,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case N:return(e=Gs(19,n,t,a)).elementType=N,e.lanes=o,e;case F:return Ys(n,a,o,t);case B:return(e=Gs(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case O:l=14;break e;case P:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Ws(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ys(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Qs(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=$t(0),this.expirationTimes=$t(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$t(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function eu(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(Ke(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(va(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(va(u)){n=wa(n,u,s);break e}}n=s}else n=fa;return null===t.context?t.context=n:t.pendingContext=n,(t=co(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),fo(a,t),ms(a,l,o),l}function tu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function nu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ru(e,t){nu(e,t),(e=e.alternate)&&nu(e,t)}function au(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,so(t),e[ea]=n.current,Or(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function ou(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function iu(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=tu(i);l.call(e)}}eu(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new au(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=tu(i);s.call(e)}}ks((function(){eu(t,i,e,a)}))}return tu(i)}function lu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ou(t))throw Error(i(200));return Js(e,t,null,n)}Wl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ma.current)Fi=!0;else{if(0==(n&r)){switch(Fi=!1,t.tag){case 3:Vi(t),Wo();break;case 5:Mo(t);break;case 1:va(t.type)&&ka(t);break;case 4:Io(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;da(Xa,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(da(Bo,1&Bo.current),null!==(t=ol(e,t,n))?t.sibling:null);da(Bo,1&Bo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),da(Bo,Bo.current),r)break;return null;case 23:case 24:return t.lanes=0,$i(e,t,n)}return ol(e,t,n)}Fi=0!=(16384&e.flags)}else Fi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ga(t,pa.current),oo(t,n),a=li(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,va(r)){var o=!0;ka(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,so(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&vo(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,Eo(t,r,e,n),t=Zi(null,t,r,!0,o,n)}else t.tag=0,Bi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===O)return 14}return 2}(a),e=Qa(a,e),o){case 0:t=Gi(null,t,a,e,n);break e;case 1:t=Hi(null,t,a,e,n);break e;case 11:t=ji(null,t,a,e,n);break e;case 14:t=zi(null,t,a,Qa(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 1:return r=t.type,a=t.pendingProps,Hi(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 3:if(Vi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,uo(e,t),mo(t,r,null,n),(r=t.memoizedState.element)===a)Wo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(Uo=Wr(t.stateNode.containerInfo.firstChild),zo=t,o=$o=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Yo.push(o);for(n=Ao(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Bi(e,t,r,n),Wo();t=t.child}return t;case 5:return Mo(t),null===e&&Ho(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,Gr(r,a)?l=null:null!==o&&Gr(r,o)&&(t.flags|=16),qi(e,t),Bi(e,t,l,n),t.child;case 6:return null===e&&Ho(t),null;case 13:return Xi(e,t,n);case 4:return Io(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=To(t,null,r,n):Bi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,ji(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 7:return Bi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Bi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(da(Xa,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=cr(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!ma.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=co(-1,n&-n)).tag=2,fo(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ao(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Bi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,oo(t,n),r=r(a=io(a,o.unstable_observedBits)),t.flags|=1,Bi(e,t,r,n),t.child;case 14:return o=Qa(a=t.type,t.pendingProps),zi(e,t,a,o=Qa(a.type,o),r,n);case 15:return Ui(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Qa(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,va(r)?(e=!0,ka(t)):e=!1,oo(t,n),wo(t,r,a),Eo(t,r,a,n),Zi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return $i(e,t,n)}throw Error(i(156,t.tag))},au.prototype.render=function(e){eu(e,this._internalRoot,null,null)},au.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;eu(null,e,null,(function(){t[ea]=null}))},tt=function(e){13===e.tag&&(ms(e,4,fs()),ru(e,4))},nt=function(e){13===e.tag&&(ms(e,67108864,fs()),ru(e,67108864))},rt=function(e){if(13===e.tag){var t=fs(),n=ps(e);ms(e,n,t),ru(e,n)}},at=function(e,t){return t()},Te=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=oa(r);if(!a)throw Error(i(90));Q(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Pe=ws,Ie=function(e,t,n,r,a){var o=Ol;Ol|=4;try{return Za(98,e.bind(null,t,n,r,a))}finally{0===(Ol=o)&&(Vl(),Wa())}},De=function(){0==(49&Ol)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,qa())}))}Wa()}(),Ds())},Me=function(e,t){var n=Ol;Ol|=2;try{return e(t)}finally{0===(Ol=n)&&(Vl(),Wa())}};var su={Events:[ra,aa,oa,Ne,Oe,Ds,{current:!1}]},uu={findFiberByHostInstance:na,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},cu={bundleType:uu.bundleType,version:uu.version,rendererPackageName:uu.rendererPackageName,rendererConfig:uu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:uu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var du=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!du.isDisabled&&du.supportsFiber)try{Sa=du.inject(cu),xa=du}catch(ge){}}t.hydrate=function(e,t,n){if(!ou(t))throw Error(i(200));return iu(null,e,t,!0,n)}},3935:function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:function(e){var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:function(e,t,n){"use strict";n.d(t,{B6:function(){return H},ql:function(){return J}});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},v={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},E=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},C=function(e){return S(e,"onChangeClientState")||function(){}},_=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},N=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},O=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},P=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===P.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=N(e.metaTags,y),o=N(t,v),i=N(n,b);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,f,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var f={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,p,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:_("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:_("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:C(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:_("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){W(t,(function(){Y=null}))})):(W(t),Y=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Q=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(O(this.props,"helmetData"),O(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Q),l=Object.keys(i).reduce((function(e,t){return e[E[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function E(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return E(e)||k(e)===c},t.isConcurrentMode=E,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===w||e.$$typeof===v)},t.typeOf=k},9864:function(e,t,n){"use strict";e.exports=n(9921)},8356:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function v(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return v(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){v(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){v(c).then(e,e)}))},e.exports=h},8790:function(e,t,n){"use strict";n.d(t,{H:function(){return l},f:function(){return i}});var r=n(6550),a=n(3117),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:function(e,t,n){"use strict";n.d(t,{OL:function(){return y},VK:function(){return c},rU:function(){return g}});var r=n(6550),a=n(144),o=n(7294),i=n(9318),l=n(3117),s=n(102),u=n(2177),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,v=e.innerRef,b=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},b,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||v:h.innerRef=v,o.createElement(a,h)}))})),v=function(e){return e},b=o.forwardRef;void 0===b&&(b=v);var y=b((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,E=e.strict,S=e.style,x=e.to,C=e.innerRef,_=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:E}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,N="function"==typeof S?S(L):S;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),N=(0,l.Z)({},N,p));var O=(0,l.Z)({"aria-current":L&&a||null,className:R,style:N,to:i},_);return v!==b?O.ref=t||C:O.innerRef=C,o.createElement(g,O)}))}))},6550:function(e,t,n){"use strict";n.d(t,{AW:function(){return x},F0:function(){return w},LX:function(){return S},TH:function(){return P},k6:function(){return O},rs:function(){return R},s6:function(){return y}});var r=n(144),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(2177),u=n(3117),c=n(9658),d=n.n(c),f=(n(9864),n(102)),p=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function h(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var g=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).emitter=h(t.props.value),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},v=function(e){var t=g();return t.displayName=e,t},b=v("Router-History"),y=v("Router"),w=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var k={},E=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=k[n]||(k[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return E<1e4&&(r[e]=o,E++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(y.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function C(e){return"/"===e.charAt(0)?e:"/"+e}function _(e,t){if(!e)return t;var n=C(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var N=a.useContext;function O(){return N(b)}function P(){return N(y).location}},9658:function(e,t,n){var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||c,C=v||b;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:S,repeat:E,partial:k,asterisk:!!w,pattern:C?u(C):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},2408:function(e,t,n){"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var y=b.prototype=new v;y.constructor=b,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!E.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var C=/\/+/g;function _(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+_(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(C,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(C,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+_(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+_(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function N(){var e=R.current;if(null===e)throw Error(p(321));return e}var O={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!E.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},7294:function(e,t,n){"use strict";e.exports=n(2408)},53:function(e,t){"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,v=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+b;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){v=f((function(){e(t.unstable_now())}),n)},a=function(){p(v),v=-1}}function E(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<C(a,t)))break e;e[r]=t,e[n]=a,n=r}}function S(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>C(i,n))void 0!==s&&0>C(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>C(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function C(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var _=[],T=[],A=1,L=null,R=3,N=!1,O=!1,P=!1;function I(e){for(var t=S(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,E(_,t)}t=S(T)}}function D(e){if(P=!1,I(e),!O)if(null!==S(_))O=!0,n(M);else{var t=S(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){O=!1,P&&(P=!1,a()),N=!0;var o=R;try{for(I(n),L=S(_);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===S(_)&&x(_),I(n)}else x(_);L=S(_)}if(null!==L)var s=!0;else{var u=S(T);null!==u&&r(D,u.startTime-n),s=!1}return s}finally{L=null,R=o,N=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){O||N||(O=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return S(_)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,E(T,e),null===S(_)&&e===S(T)&&(P?a():P=!0,r(D,i-l))):(e.sortIndex=s,E(_,e),O||N||(O=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:function(e,t,n){"use strict";e.exports=n(53)},6774:function(e){e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},2177:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r="Invariant failed";function a(e,t){if(!e)throw new Error(r)}},6809:function(e,t,n){"use strict";n.r(t),t.default={title:"RN Notificated",tagline:"React Native Notificated",url:"https://thewidlarzgroup.github.io",baseUrl:"/react-native-notificated/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"thewidlarzgroup",projectName:"react-native-notificated",presets:[["classic",{docs:{sidebarCollapsible:!1,sidebarPath:"/home/runner/work/react-native-notificated/react-native-notificated/docs/sidebars.js"},blog:{showReadingTime:!0},theme:{customCss:"/home/runner/work/react-native-notificated/react-native-notificated/docs/src/css/custom.css"}}]],themeConfig:{navbar:{title:"RN Notificated",logo:{alt:"My Site Logo",src:"img/logo.svg"},items:[{type:"docSidebar",sidebarId:"intro",position:"left",label:"Documentation"},{type:"docSidebar",sidebarId:"api",position:"left",label:"API Reference"},{href:"https://github.com/TheWidlarzGroup/react-native-notificated",label:"GitHub",position:"right"}],hideOnScroll:!1},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},3117:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},144:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:function(){return a}})},102:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:function(){return r}})},7529:function(e){"use strict";e.exports={}},6887:function(e){"use strict";e.exports=JSON.parse('{"/react-native-notificated/markdown-page-116":{"__comp":"1f391b9e","__context":{"plugin":"8b63878d"},"content":"393be207"},"/react-native-notificated/docs-aac":{"__comp":"1be78505","__context":{"plugin":"853d0b8d"},"versionMetadata":"935f2afb"},"/react-native-notificated/docs/api/apiReference-283":{"__comp":"17896441","content":"130705e3"},"/react-native-notificated/docs/api/types-cdb":{"__comp":"17896441","content":"b999a6e4"},"/react-native-notificated/docs/intro/-452":{"__comp":"17896441","content":"7d744e69"},"/react-native-notificated/docs/intro/animations/changing-transitions-778":{"__comp":"17896441","content":"d478062d"},"/react-native-notificated/docs/intro/animations/custom-transitions-f7c":{"__comp":"17896441","content":"e2240ec9"},"/react-native-notificated/docs/intro/basics/basic-configuration-6fa":{"__comp":"17896441","content":"1ba8ff6a"},"/react-native-notificated/docs/intro/basics/basic-usage-076":{"__comp":"17896441","content":"7155e245"},"/react-native-notificated/docs/intro/comprehensive-configuration/global-notifications-settings-680":{"__comp":"17896441","content":"ec62de9c"},"/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwriting-c87":{"__comp":"17896441","content":"b935233d"},"/react-native-notificated/docs/intro/default-variants-config/default-variants-4b5":{"__comp":"17896441","content":"1510c8cb"},"/react-native-notificated/docs/intro/default-variants-config/global-config-cbd":{"__comp":"17896441","content":"2dbe75c6"},"/react-native-notificated/docs/intro/default-variants-config/position-2df":{"__comp":"17896441","content":"73b95941"},"/react-native-notificated/docs/intro/default-variants-config/props-config-617":{"__comp":"17896441","content":"6e08fe13"},"/react-native-notificated/docs/intro/default-variants-config/width-edb":{"__comp":"17896441","content":"222e0563"},"/react-native-notificated/docs/intro/errors-handling/-548":{"__comp":"17896441","content":"b3722853"},"/react-native-notificated/docs/intro/examples/custom-components-examples-286":{"__comp":"17896441","content":"9bf77f4a"},"/react-native-notificated/docs/intro/examples/custom-examples-d19":{"__comp":"17896441","content":"d47ad1f1"},"/react-native-notificated/docs/intro/examples/dark-mode-examples-0a0":{"__comp":"17896441","content":"ec1df02a"},"/react-native-notificated/docs/intro/examples/default-examples-c39":{"__comp":"17896441","content":"99021b66"},"/react-native-notificated/docs/intro/examples/global-config-examples-c1a":{"__comp":"17896441","content":"d6395bee"},"/react-native-notificated/docs/intro/examples/global-types-config-examples-034":{"__comp":"17896441","content":"3deb4b50"},"/react-native-notificated/docs/intro/examples/notification-in-modal-example-86a":{"__comp":"17896441","content":"134332ea"},"/react-native-notificated/docs/intro/examples/push-notifications-example-60a":{"__comp":"17896441","content":"c6940b42"},"/react-native-notificated/docs/intro/examples/redux-example-dc5":{"__comp":"17896441","content":"4d4b98dc"},"/react-native-notificated/docs/intro/types/custom-components-examples-2cd":{"__comp":"17896441","content":"f71bb59a"},"/react-native-notificated/-809":{"__comp":"1df93b7f","__context":{"plugin":"8b63878d"},"config":"5e9f5e1a"}}')}},function(e){e.O(0,[532],(function(){return t=9383,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.83448d70.js.LICENSE.txt b/assets/js/main.83448d70.js.LICENSE.txt new file mode 100644 index 00000000..6e08db29 --- /dev/null +++ b/assets/js/main.83448d70.js.LICENSE.txt @@ -0,0 +1,53 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + */ + +/** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.5a154ed0.js b/assets/js/runtime~main.5a154ed0.js new file mode 100644 index 00000000..05cf4329 --- /dev/null +++ b/assets/js/runtime~main.5a154ed0.js @@ -0,0 +1 @@ +!function(){"use strict";var e,t,n,r,o,f={},a={};function c(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={id:e,loaded:!1,exports:{}};return f[e].call(n.exports,n,n.exports,c),n.loaded=!0,n.exports}c.m=f,c.c=a,e=[],c.O=function(t,n,r,o){if(!n){var f=1/0;for(d=0;d<e.length;d++){n=e[d][0],r=e[d][1],o=e[d][2];for(var a=!0,i=0;i<n.length;i++)(!1&o||f>=o)&&Object.keys(c.O).every((function(e){return c.O[e](n[i])}))?n.splice(i--,1):(a=!1,o<f&&(f=o));if(a){e.splice(d--,1);var u=r();void 0!==u&&(t=u)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,r,o]},c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},c.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);c.r(o);var f={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){f[t]=function(){return e[t]}}));return f.default=function(){return e},c.d(o,f),o},c.d=function(e,t){for(var n in t)c.o(t,n)&&!c.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},c.f={},c.e=function(e){return Promise.all(Object.keys(c.f).reduce((function(t,n){return c.f[n](e,t),t}),[]))},c.u=function(e){return"assets/js/"+({53:"935f2afb",58:"7155e245",85:"1f391b9e",90:"853d0b8d",200:"1510c8cb",225:"222e0563",237:"1df93b7f",261:"c6940b42",318:"d478062d",320:"d6395bee",322:"134332ea",353:"b935233d",382:"d47ad1f1",386:"b3722853",399:"1ba8ff6a",414:"393be207",449:"8b63878d",466:"7d744e69",514:"1be78505",658:"130705e3",678:"6e08fe13",697:"4d4b98dc",720:"2dbe75c6",726:"99021b66",742:"e2240ec9",759:"f71bb59a",793:"ec1df02a",869:"ec62de9c",873:"3deb4b50",875:"73b95941",918:"17896441",927:"b999a6e4",931:"9bf77f4a"}[e]||e)+"."+{53:"7d49a32a",58:"5d6537aa",85:"351cd309",90:"2588f9a8",200:"33c9926f",225:"830ebcb4",237:"e1690549",261:"7a88de7b",318:"e407c3db",320:"8f5f7937",322:"b557c3a4",353:"b8b93cb4",382:"eb729eb2",386:"98cb7799",399:"dcdc93c4",414:"fb391696",430:"84e2b318",449:"57cd711b",466:"10eceafa",514:"4ae76337",658:"f9f991d9",678:"d9182055",697:"e0749f01",720:"2c6401e1",726:"4d07d0e2",742:"0550693f",759:"37125beb",793:"4d3a072c",869:"6830d059",873:"956abb01",875:"c3b9b8e7",918:"73382181",927:"b51978a6",931:"2533e3e0",972:"d80ccc86"}[e]+".js"},c.miniCssF=function(e){},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="my-website:",c.l=function(e,t,n,f){if(r[e])r[e].push(t);else{var a,i;if(void 0!==n)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var b=u[d];if(b.getAttribute("src")==e||b.getAttribute("data-webpack")==o+n){a=b;break}}a||(i=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,c.nc&&a.setAttribute("nonce",c.nc),a.setAttribute("data-webpack",o+n),a.src=e),r[e]=[t];var l=function(t,n){a.onerror=a.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(n)})),t)return t(n)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),i&&document.head.appendChild(a)}},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/react-native-notificated/",c.gca=function(e){return e={17896441:"918","935f2afb":"53","7155e245":"58","1f391b9e":"85","853d0b8d":"90","1510c8cb":"200","222e0563":"225","1df93b7f":"237",c6940b42:"261",d478062d:"318",d6395bee:"320","134332ea":"322",b935233d:"353",d47ad1f1:"382",b3722853:"386","1ba8ff6a":"399","393be207":"414","8b63878d":"449","7d744e69":"466","1be78505":"514","130705e3":"658","6e08fe13":"678","4d4b98dc":"697","2dbe75c6":"720","99021b66":"726",e2240ec9:"742",f71bb59a:"759",ec1df02a:"793",ec62de9c:"869","3deb4b50":"873","73b95941":"875",b999a6e4:"927","9bf77f4a":"931"}[e]||e,c.p+c.u(e)},function(){var e={303:0,532:0};c.f.j=function(t,n){var r=c.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise((function(n,o){r=e[t]=[n,o]}));n.push(r[2]=o);var f=c.p+c.u(t),a=new Error;c.l(f,(function(n){if(c.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),f=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+f+")",a.name="ChunkLoadError",a.type=o,a.request=f,r[1](a)}}),"chunk-"+t,t)}},c.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,o,f=n[0],a=n[1],i=n[2],u=0;if(f.some((function(t){return 0!==e[t]}))){for(r in a)c.o(a,r)&&(c.m[r]=a[r]);if(i)var d=i(c)}for(t&&t(n);u<f.length;u++)o=f[u],c.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return c.O(d)},n=self.webpackChunkmy_website=self.webpackChunkmy_website||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}()}(); \ No newline at end of file diff --git a/docs/api/apiReference/index.html b/docs/api/apiReference/index.html new file mode 100644 index 00000000..9058b37b --- /dev/null +++ b/docs/api/apiReference/index.html @@ -0,0 +1,23 @@ +<!doctype html> +<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-api/apiReference"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.2.0"> +<title data-rh="true">API | RN Notificated + + + + +
+

⚙️ API Reference

Below you will find a brief description of all the methods and properties that the library exposes. +All entries are sorted alphabetically.


animationConfig

A parameter used to configure the animation. It can be set up for the entire app or selectively for a particular notification. +Below is the global configuration:

import { createNotifications, RotateInRotateOut } from 'react-native-notificated'

const { NotificationsProvider } = createNotifications({
animationConfig: RotateInRotateOut,
})

It can also be overwritten in the local scope when calling the notification:

import { SlideInLeftSlideOutRight } from 'react-native-notificated'

[...]

notify('success', {
params: {
title: 'Success',
description: 'This is where the toast text goes',
},
config: {
animationConfig: SlideInLeftSlideOutRight,
},
})

We've prepared a couple of ready-to-use animations for you (just import them from the library):

  • RotateZIn
  • ZoomInDownZoomOutUp
  • ZoomInDownZoomOutDown
  • RotateInRotateOut
  • SlideInLeftSlideOutRight
  • ZoomInZoomOut
  • MoveUp
  • MoveDown
  • SlideInLeft
  • FadeInFadeOut
  • VeryCustomTransition
  • DiagonalSlideInLeftSlideOutRight

createNotifications()

API used to initialize the library in the project.

import { createNotifications } from 'react-native-notificated'

const { NotificationsProvider } = createNotifications()

The createNotifications() invoked without any configuration, as in the above example, is fairly enough to use the library on its basic level. +Here is an example of all available parameters that can be adjusted in createNotifications():

const { NotificationsProvider } = createNotifications({
duration: number // -> default 3000
notificationPosition: NotificationPosition
animationConfig: CustomAnimationConfig
gestureConfig: GestureConfig
isNotch?: boolean
defaultStylesSettings: {
darkMode: false,
globalConfig: StyleProps
successConfig: StyleProps
errorConfig: StyleProps
warningConfig: StyleProps
infoConfig: StyleProps
},
variants: CustomVariants
})

Check out StyleProps

The defaultStylesSettings provides styles for all default notifications. globalConfig is on the top of the hierarchy and distributes styles for all types of build-in notifications: success, error, warning, and info. For example, successConfig (if provided) will overwrite globalConfig styles only for 'success' notifications. successConfig styles can be overwritten on the lowest level when calling a 'success' notification using notify(). Check out Order of settings overwriting for more details.


generateAnimationConfig()

This method allows to set up custom animations.

generateAnimationConfig(config: CustomAnimationConfig)

Check out CustomAnimationConfig and Custom transitions

It takes four properties:

  • animationConfigIn // -> REQUIRED
  • animationConfigOut
  • transitionInStyles // -> REQUIRED
  • transitionOutStyles
import { generateAnimationConfig } from 'react-native-notificated'

const myCustomAnimation = generateAnimationConfig({
animationConfigIn: {
type: "timing" | "spring",
config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations
},
animationConfigOut: {
type: "timing" | "spring",
config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations
},
transitionInStyles: (progress: SharedValue<number>) => AnimatedStylesType // -> must be a worklet / Reanimated type declarations
transitionOutStyles: (progress: SharedValue<number>) => AnimatedStylesType // -> must be a worklet / Reanimated type declarations
})

modify()

Method returned from useNotifications() and useNotificationsController() hooks. +This method is very similar to notify. +The main difference is that you have the opportunity to change the existing notifications.

modify(id: string, setup: { params: NotificationParams; config?: NotificationConfigParams }): void

Jump to NotificationParams and NotificationConfigParams

The sample code below shows how the method should be implemented:

import { useNotifications } from 'react-native-notificated'

const SomeFunctionComponent = () => {
const [id, setId] = useState('')
const { modify, notify } = useNotifications()

return (
<View>
<Button
title='launch notification'
onPress={() =>
setId(
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
},
}).id
)
}
/>
<Button
title='modify notification'
onPress={() =>
modify(id, {
params: {
title: 'Hello',
description: 'Wow, that was easy',
},
})
}
>
</View>
)
}

NotificationsProvider

A provider, which acts as the notifications root. Depending on where you mount it, this is where the notifications will get rendered in your component tree.

return (
<>
<App />
<NotificationsProvider />
</>
)

notify()

This method is responsible for launching notification (default or custom, if implemented). +Returned from the useNotifications() hook.

notify(notificationType: string, setup: { params: NotificationParams; config?: NotificationConfigParams }): string

Jump to NotificationParams and NotificationConfigParams

The sample code below shows how it should be implemented:

import { useNotifications } from 'react-native-notificated'

const SomeFunctionComponent = () => {
const { notify } = useNotifications()

const notificationMetadata = notify('success', {
params: {
title: 'Hello',
description: 'Wow, that was easy',
},
})
}

The notify() returns the notification id. +The ID can be later used to manipulate this particular notification (to remove or update content).

[...]
const notificationID = notify('success', {
params: {
title: 'Hello',
description: 'Wow, that was easy',
},
}).id
[...]

remove()

This method removes the notification. It is returned from the useNotifications() and useNotificationsController() hooks.

remove(id: string): void

The sample code below shows how it works:

import { useNotifications } from 'react-native-notificated'

const SomeFunctionComponent = () => {
const [id, setId] = useState('')
const { remove, notify } = useNotifications()

return (
<View>
<Button
title='launch notification'
onPress={() =>
setId(
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
},
}).id
)
}
/>
<Button
title='remove notification'
onPress={() => remove(id)}
>
</View>
)
}

useNotifications()

The hook is imported from 'react-native-notificated' and can be used only inside the function component.

import { useNotifications } from 'react-native-notificated'

const SomeFunctionComponent = () => {
const { notify, modify, remove } = useNotifications()

[...]
}

The useNotifications() provides three methods: notify, modify, and remove - described separately.


useNotificationsController()

The hook is imported from 'react-native-notificated' and can be used only inside the function component.

import { useNotificationsController } from 'react-native-notificated'

const SomeFunctionComponent = () => {
const { modify, remove } = useNotifications()

[...]
}

The useNotificationsController() provides two methods: modify and remove - described separately.


+ + + + \ No newline at end of file diff --git a/docs/api/types/index.html b/docs/api/types/index.html new file mode 100644 index 00000000..73312d8d --- /dev/null +++ b/docs/api/types/index.html @@ -0,0 +1,16 @@ + + + + + +Types | RN Notificated + + + + +
+

🪛 Types

Here are all the types referenced in the API section.


CustomAnimationConfig

animationConfigIn: {
type: "timing" | "spring",
config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations
}
animationConfigOut?: {
type: "timing" | "spring",
config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations
}
transitionInStyles: (progress: SharedValue<number>) => AnimatedStylesType // -> must be a worklet / Reanimated type declarations
transitionOutStyles?: (progress: SharedValue<number>) => AnimatedStylesType // -> must be a worklet / Reanimated type declarations

CustomVariants

{
key: {
component: React.FC
},
[...]
}


GestureConfig

direction: 'y' | 'x' | 'full' | 'none'

StyleProps

titleSize: number // default 20
titleColor: string
descriptionSize: number // default 12
descriptionColor: string
bgColor: string
borderType: 'border' | 'accent' | 'no-border' // default 'accent',
borderRadius: number // default 25
accentColor: string
borderWidth: number // default 3
multiline: number // default 5
defaultIconType: 'color' | 'monochromatic' | 'no-icon' // default 'color'
leftIconSource: ImageSourcePropType // -> React Native type declaration
imageStyle: ImageStyle // -> React Native type declaration

NotificationConfigParams

config?: {
duration?: number // default 3000
notificationPosition: NotificationPosition // default 'top'
animationConfig: CustomAnimationConfig
}

NotificationParams

params: {
title?: string
description?: string
onPress?: () => void
style?: StyleProps
hideCloseButton?: boolean // default false
customID?: string
}

When used with a custom notification, there is a little difference in the 'title' and 'description'

// when calling custom component:
params: {
customTitle?: string
customDescription?: string
[...]
// rest is the same
}

NotificationPosition

;'top' | 'center' | 'top'

ModalNotificationProvider

ModalNotificationsProvider: React.FC<React.PropsWithChildren<{ notificationTopPosition?: number }>>

+ + + + \ No newline at end of file diff --git a/docs/intro/animations/changing-transitions/index.html b/docs/intro/animations/changing-transitions/index.html new file mode 100644 index 00000000..d4440569 --- /dev/null +++ b/docs/intro/animations/changing-transitions/index.html @@ -0,0 +1,16 @@ + + + + + +🔄 Transitions | RN Notificated + + + + +
+

🔄 Transitions

🎛 Changing transitions

You can change the way in which the notification boxes are animated by simply redeclaring the transition type in the config or payload objects.

Depending on whether you want to change the default transitions for the whole app or only change it for a certain notification, you can either:

  1. Change the animation type in the config object of createNotification:
import { createNotifications, RotateInRotateOut } from 'react-native-notificated'

const { useNotifications } = createNotifications({
animationConfig: RotateInRotateOut,
})
  1. Use the config.animationConfig property in the payload of a notify function:
import { createNotifications, SlideInLeftSlideOutRight } from 'react-native-notificated'

const { useNotifications } = createNotifications()

const { notify } = useNotifications()

notify('success', {
params: {
title: 'Success',
description: 'This is where the toast text goes',
},
config: {
animationConfig: SlideInLeftSlideOutRight,
},
})
  1. Change the animation type in the config object of a certain variant in the config object of createNotification:

Not yet implemented 😔

‼️ When changing the transition type, you can choose from a variety of pre-made configs that our team has prepared for you!

🔦 Config priority

For each subsequent notification, the library looks for an animation config in the following order:

  1. First, it looks for a config defined in notify payload
  2. Next, it looks for a global config from createNotification
  3. At last, when no config is found, it uses the default behaviour, which is platform-dependend

📦 Pre-made configs:

  • RotateZIn
  • ZoomInDownZoomOutUp
  • ZoomInDownZoomOutDown
  • RotateInRotateOut
  • SlideInLeftSlideOutRight

🔧 Custom transitions

If you feel like you need a custom transition, fear not, we have got you covered! Go to the next chapter to see how to create your own transition! 💥

+ + + + \ No newline at end of file diff --git a/docs/intro/animations/custom-transitions/index.html b/docs/intro/animations/custom-transitions/index.html new file mode 100644 index 00000000..3b64d9a1 --- /dev/null +++ b/docs/intro/animations/custom-transitions/index.html @@ -0,0 +1,17 @@ + + + + + +💫 Custom transitions | RN Notificated + + + + +
+

💫 Custom transitions

👩🏽‍How the animations work under the hood

Our library is dependent on the react-native-reanimated (v2) which we use to animate the wrapper around the notification components.

To understand the ins and outs of animations, you can also take a look at the documentation for the aforementioned React Native Reanimated

Our animation system is designed to recognize two kinds of transitions:

  1. transition in
  2. transition out

and it is based on one animated value (shared value) that represents these transitions and animates itself from 0 to 1.

Its range should be self-explanatory, 0 represents the beginning of the transition in animation, whereas 1 stands for the starting point for the transition out kind of animation.

When the notification is about to show up, the value is animated from 0 to 1. When the notification is about to dissapear, it goes from 1 to 0.

Every time a notification is about to be shown, the library renders the UI part wrapped with an <Animated.View /> and applies animated styles to it so it knows how it should animate.

The source of these styles comes from the animation config that is generated with AnimationBuilder class or generateAnimationConfig function and is used internally by the library to generate the animations. You can also use it yourself to create whatever transition you desiere.

Summarizing, there are 4 properties that can controll the transition. They all are handled by AnimationBuilder or generateAnimationConfig and go as follows:

  • animationConfigIn - spring / timing configuration for transition in. REQUIRED
  • animationConfigOut - spring / timing configuration for transition out. Not required, fallbacks to animationConfigIn when not provided
  • transitionInStyles - a worklet function that takes in the animated progress value. It has to return the animated styles. For transition in
  • transitionOutStyles - same as above but for transition out. Not required, fallbacks to ^

The return type of this function (generateAnimationConfig) is CustomAnimationConfig which you can then use when changing the animation types in, e.g., createNotification or notify call.

Generating transition config with AnimationBuilder

The AnimationBuilder takes in a config object as a property with which you can define the animation.

Below code snippets should give an idea how it works:

Example 1

export const MoveDown = new AnimationBuilder({
animationConfigIn: {
type: 'timing',
config: {
duration: 400,
},
},
transitionInStyles: (progress) => {
'worklet'
const translateY = interpolate(progress.value, [0, 1], [-100, 0])
return {
opacity: progress.value,
transform: [{ translateY }],
}
},
transitionOutStyles: (progress) => {
'worklet'
const translateY = interpolate(progress.value, [0, 1], [100, 0])
return {
opacity: progress.value,
transform: [{ translateY }],
}
},
})

Example 2

export const RotateIn = generateAnimationConfig({
animationConfigIn: {
type: 'timing',
config: {
duration: 700,
easing: Easing.out(Easing.exp),
},
},
transitionInStyles: (progress) => {
'worklet'

const rotate = interpolate(progress.value, [0, 1], [-360, 0])

return {
transform: [{ rotate: `${rotate}deg` }, { scale: progress.value }],
opacity: progress.value,
}
},
})

Example 3

export const MoveDownRotateIn = MoveDown.add(RotateIn)

Generating transition config with generateAnimationConfig

caution

generateAnimation config is deprecated. Please use Animation builder which allows your animations to be more customizable.

The generateAnimationConfig takes in a config object as a property with which you can define the animation.

The code snippets below should give an idea how it works:

Example 1

export const Example1 = generateAnimationConfig({
animationConfigIn: {
type: 'timing',
config: {
duration: 400,
easing: Easing.inOut(Easing.sin),
},
},
transitionInStyles: (progress) => {
'worklet'

const scale = interpolate(progress.value, [0, 1], [0.8, 1])
const translateY = interpolate(progress.value, [0, 1], [-100, 0])

return {
opacity: progress.value,
transform: [{ scale }, { translateY }],
}
},
})

Example 2

export const Example2 = generateAnimationConfig({
animationConfigIn: {
type: 'timing',
config: {
duration: 300,
},
},
animationConfigOut: {
type: 'spring',
config: {
damping: 4,
mass: 0.8,
},
},
transitionInStyles: (progress) => {
'worklet'

const scale = interpolate(progress.value, [0, 1], [0.8, 1])
const translateY = interpolate(progress.value, [0, 1], [-100, 0])

return {
opacity: progress.value,
transform: [{ scale }, { translateY }],
}
},
transitionOutStyles: (progress) => {
'worklet'

const scale = interpolate(progress.value, [0, 1], [0.8, 1])
const translateY = interpolate(progress.value, [0, 1], [100, 0])

return {
opacity: progress.value,
transform: [{ scale }, { translateY }],
}
},
})

As you can see in the above examples, you have full control over the styles and animation configs for both kind of transitions - in and out.

animationConfigIn and animationConfigOut

The type of animationConfigIn and animationConfigOut:

{
type: "timing" | "spring",
config: WithSpringConfig | WithTimingConfig // -> Reanimated type declarations
}

transitionInStyles and transitionOutStyles

The type of transitionInStyles and transitionOutStyles is the +following function (must be a worklet):

type TransistionStylesConfigFunction = (progress: SharedValue<number>) => AnimatedStylesType
+ + + + \ No newline at end of file diff --git a/docs/intro/basics/basic-configuration/index.html b/docs/intro/basics/basic-configuration/index.html new file mode 100644 index 00000000..91c9e9b7 --- /dev/null +++ b/docs/intro/basics/basic-configuration/index.html @@ -0,0 +1,16 @@ + + + + + +🛠 Basic configuration | RN Notificated + + + + + + + + + \ No newline at end of file diff --git a/docs/intro/basics/basic-usage/index.html b/docs/intro/basics/basic-usage/index.html new file mode 100644 index 00000000..0f7602aa --- /dev/null +++ b/docs/intro/basics/basic-usage/index.html @@ -0,0 +1,16 @@ + + + + + +🐣 Basic usage | RN Notificated + + + + +
+

🐣 Basic usage

Create Notifications

import { createNotifications } from 'react-native-notificated'

const { NotificationsProvider, useNotifications, ...events } = createNotifications()

🛠 Add or Wrap your entry component with NotificationsProvider

return (
<>
<App />
<NotificationsProvider />
</>
)

OR

return (
<NotificationsProvider>
<App />
</NotificationsProvider>
)

📢 Display notification

const { notify } = useNotifications()

const notificationMetadata = notify('success', {
params: {
title: 'Hello',
description: 'Wow, that was easy',
},
})

🔨 Modify notification

const { modify } = useNotifications()

modify({
id: notificationMetadata.id,
params: { title: 'New title', description: 'New description' },
})

🗑 Remove notification

const { remove } = useNotifications()

remove(notificationMetadata.id)
+ + + + \ No newline at end of file diff --git a/docs/intro/comprehensive-configuration/global-notifications-settings/index.html b/docs/intro/comprehensive-configuration/global-notifications-settings/index.html new file mode 100644 index 00000000..a3f55572 --- /dev/null +++ b/docs/intro/comprehensive-configuration/global-notifications-settings/index.html @@ -0,0 +1,16 @@ + + + + + +⚙️ Global notifications settings | RN Notificated + + + + +
+

⚙️ Global notifications settings


The react-native-notificated library gives you a lot of possibilities to change the default configuration.

In the beginning, you can set the configuration for all the notifications used in the app.

Let's take a look at what exactly can we set globally:

NameTypeDefaultDescription
durationNumber3000Use this property to set how long the notifications should be displayed on the screen. Value expressed in milliseconds.
notificationPosition'top' / 'top-right' / 'top-left' / 'center' / 'bottom' / 'bottom-right' / 'bottom-left''top'Set where the notifications should appear on the screen. You can choose one of seven default options: top / top-right / top-left / center / bottom / bottom-right / bottom-left. To read more about the notification position please go to the NOTIFICATION POSITION section.
notificationWidthNumber343Use this property to set the width, in pixels, of the notifications that will be displayed on the screen.
animationConfigObjectSlideInLeftSlideOutRightProperty responsible for the notification animation. You can set one of the animations prepared by us, or make your own config. To read more about the animation settings please go to the ANIMATIONS SETTINGS section.
isNotchBooleanfalseProperty responsible for read if the device has notch. You can use one of the libraries (for example 'react-native-device-info') to read if the specific device has Notch and pass the value here.
gestureConfigObjectiOS: 'y' / android: 'x'Object responsible for setting gesture direction that triggers swipe-dismiss of notification. To read more about gesture config, please go to the GESTURE CONFIG section.
defaultStylesSettingsObject-Object responsible for setting global styles for the notifications. You can also set here styles, for all the notifications of the specific type. For example for the error notifications. To read more about global style settings please go to the GLOBAL STYLES SETTINGS section.

Here we can see the global notifications settings in their basic form with default settings:


const { useNotifications, NotificationsProvider } = createNotifications({
duration: 300,
notificationPosition: 'top',
animationConfig: SlideInLeftSlideOutRight,
isNotch: undefined,
defaultStylesSettings: {},
gestureConfig: { direction: 'y' },
})

Notch handling

The library handles notch detection automatically so you don't have to worry about configuring this on your side. However, if you wish to take control over this by yourself, you can do that by declaring isNotch property in the global config.

const { useNotifications, NotificationsProvider } = createNotifications({
...
isNotch: true,
})

Feel free to use for example react-native-device-info.

+ + + + \ No newline at end of file diff --git a/docs/intro/comprehensive-configuration/order-of-settings-overwriting/index.html b/docs/intro/comprehensive-configuration/order-of-settings-overwriting/index.html new file mode 100644 index 00000000..9e599dcf --- /dev/null +++ b/docs/intro/comprehensive-configuration/order-of-settings-overwriting/index.html @@ -0,0 +1,23 @@ + + + + + +✏️ Order of overwriting settings | RN Notificated + + + + +
+

✏️ Order of overwriting settings


In the React Native Notifications library, we can pass some settings on different levels.
+When we go deeper and the range of the settings is narrower, the importance of the setting is higher.
+For example, we can set the titleColor of the notification in the:

  • global range (for all notifications)
  • notification type range (for example for all errors)
  • instance range (for the single notification)

Instance range overwrites notification type range and global range. Notification type range overwrites global range.

Let's consider the case where we set all possible options for single success notification on all depth levels:
+(all the props for other notifications are the same)

import React from 'react'
import { SafeAreaView } from 'react-native'
import { createNotifications, SlideInLeftSlideOutRight } from 'react-native-notificated'
import { styles } from './styles'
import { SuccessButton } from '../components/basicExamples/SuccessButton'

const { useNotifications, NotificationsProvider } = createNotifications({
isNotch: true,
duration: 3000,
notificationPosition: 'top',
animationConfig: SlideInLeftSlideOutRight,
defaultStylesSettings: {
darkMode: false,
globalConfig: {
titleSize: 20,
titleColor: '#4B0082',
descriptionSize: 12,
descriptionColor: '#4B0082',
bgColor: '#FFFFF0',
borderType: 'accent',
borderRadius: 25,
accentColor: '#B0E0E6',
borderWidth: 3,
multiline: 5,
defaultIconType: 'color',
leftIconSource: require('../../assets/custom-icon.png'),
},
successConfig: {
titleSize: 16,
titleColor: '#4C0',
descriptionSize: 11,
descriptionColor: '#4C0',
bgColor: '#FFFFF0',
borderType: 'accent',
borderRadius: 25,
accentColor: '#B0E0E6',
borderWidth: 3,
multiline: 5,
defaultIconType: 'color',
leftIconSource: require('../../assets/custom-icon.png'),
},
},
})

export const Example = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<SuccessButton
onPress={() =>
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
style: {
titleSize: 24,
titleColor: '#4B0082',
descriptionSize: 20,
descriptionColor: '#4B0082',
bgColor: '#FFFFF0',
borderType: 'border',
borderRadius: 15,
accentColor: '#B0E0E6',
borderWidth: 1,
multiline: 3,
defaultIconType: 'monochromatic',
leftIconSource: require('../../assets/custom-icon.png'),
},
},
config: {
notificationPosition: 'center',
animationConfig: SlideInLeftSlideOutRight,
duration: 100,
},
})
}
/>
</SafeAreaView>
)
}

We can divide them as above for the three depth levels. Let's take a look at what properties can we pass at different levels:

Global range (for all notifications):

const { useNotifications, NotificationsProvider } = createNotifications({
isNotch: true,
duration: 30,
notificationPosition: 'top',
notificationWidth: 400,
animationConfig: SlideInLeftSlideOutRight,
defaultStylesSettings: {
darkMode: false,
globalConfig: {
titleSize: 20,
titleColor: '#4B0082',
descriptionSize: 12,
descriptionColor: '#4B0082',
bgColor: '#FFFFF0',
borderType: 'accent',
borderRadius: 25,
accentColor: '#B0E0E6',
borderWidth: 3,
multiline: 5,
defaultIconType: 'color',
leftIconSource: require('../../assets/custom-icon.png'),
},
},
})

All those properties:

  • isNotch
  • duration
  • notificationPosition
  • notificationWidth
  • animationConfig

(defaultStylesSettings)

  • darkMode
  • globalConfig (with all the styles properties)

Can be set up for all notifications in the app. Some of them can be set up only here:

  • isNotch
  • darkMode

The rest can be overwritten at lower levels - notification type range (for example, for all errors) and instance range (for the single notification).

Notification type range (for example for all success notifications):

const { useNotifications, NotificationsProvider } = createNotifications({
defaultStylesSettings: {
successConfig: {
titleSize: 16,
titleColor: '#4C0',
descriptionSize: 11,
descriptionColor: '#4C0',
bgColor: '#FFFFF0',
borderType: 'accent',
borderRadius: 25,
accentColor: '#B0E0E6',
borderWidth: 3,
multiline: 5,
defaultIconType: 'color',
leftIconSource: require('../../assets/custom-icon.png'),
},
errorConfig: {},
warningConfig: {},
infoConfig: {},
},
})

On the second level we can set only style properties for the different notification types:

(defaultStylesSettings)

  • successConfig
  • errorConfig
  • warningConfig
  • infoConfig

Properties set in these configs will affect all notifications of a given type. All of them have the same properties inside.
+This level overwrites only style properties previously set at the global range. You cannot overwrite here other global properties.
+Please notice that, if you set globalConfig styles (for all notifications), and then you set successConfig, then all success type notifications will take style config from the successConfig, but other notification types will take it from the globalConfig(unless you set their notification type style config for them).
+As you can see Notification types have a smaller range than global, but they are more important overall.

Instance range (for the single notification):

<SuccessButton
onPress={() =>
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
style: {
titleSize: 24,
titleColor: '#4B0082',
descriptionSize: 20,
descriptionColor: '#4B0082',
bgColor: '#FFFFF0',
borderType: 'border',
borderRadius: 15,
accentColor: '#B0E0E6',
borderWidth: 1,
multiline: 3,
defaultIconType: 'monochromatic',
leftIconSource: require('../../assets/custom-icon.png'),
},
},
config: {
notificationPosition: 'center',
animationConfig: SlideInLeftSlideOutRight,
duration: 100,
},
})
}
/>

All those properties:

(params)

  • description
  • title
  • style

(config)

  • notificationPosition
  • notificationWidth
  • animationConfig
  • duration

Can be set up for one single notification when we initiate it. Some of them can be set only here:

  • description
  • title

What makes sense, because every notification should have its reason.
+If we set some property here, it has the highest level of importance (overwrites the same property in the Global range and Notification type range), but only for this single notification.

Conclusion

In other words, if the President says something, it affects all the people in the country.

But seriously, we can listen to him, but the president of our town can easily change his opinion and then his words will probably be more valuable for us.

If the president of our city says something, that will affect all the people in the city (smaller range, stronger attention).

But then again, if our mother challenges the President’s opinion, then the latter become irrelevant :)

Truth be told, your mother probably has an impact on nobody else but yourself, but she definitely attracts your greatest attention! .

+ + + + \ No newline at end of file diff --git a/docs/intro/default-variants-config/default-variants/index.html b/docs/intro/default-variants-config/default-variants/index.html new file mode 100644 index 00000000..8cb32a9b --- /dev/null +++ b/docs/intro/default-variants-config/default-variants/index.html @@ -0,0 +1,17 @@ + + + + + +🖼️ Default Variants | RN Notificated + + + + +
+

🖼️ Default Variants


At the start, you receive from us default styling, for all 4 types of notifications (success / error / warning / info).
+If you just trigger the notification, like in the example below (we trigger the error here, but of course, it can be any other notification):

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications()

export const GlobalConfigExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}>
Emit error
</Text>
</SafeAreaView>
)
}

You will get the basic styling with the borderType set for the 'border' value, the darkMode set to false, and the defaultIconType for the color value.

(TO CHECK borderType AND OTHER STYLE PROPS GO TO THE GLOBAL STYLES SETTINGS OR SINGLE NOTIFICATION CONFIG).

Below you will find the default styling for all notification types with darkMode set to false and true for all variants.

NotificationTypedarkModeVisualisation
SuccessfalseBorder
SuccesstrueBorder
ErrorfalseBorder
ErrortrueBorder
WarningfalseBorder
WarningtrueBorder
InfofalseBorder
InfotrueBorder
+ + + + \ No newline at end of file diff --git a/docs/intro/default-variants-config/global-config/index.html b/docs/intro/default-variants-config/global-config/index.html new file mode 100644 index 00000000..7ee9f645 --- /dev/null +++ b/docs/intro/default-variants-config/global-config/index.html @@ -0,0 +1,24 @@ + + + + + +🌍 Global Styles Settings | RN Notificated + + + + +
+

🌍 Global Styles Settings

🎨 Default styles settings

In the default styles settings, we can pass the config that affects all the notifications used in the app. +We divide them into:

NameTypeDefaultDescription
darkModeBooleanfalseIf set to true, it enables the dark mode for the notification layout
globalConfigObject-Inside this object, you can pass the configuration for all notifications used in the app (or the parts wrapped with the NotificationProvider)
successConfigObject-Inside this object, you can pass the configuration for all success type notifications used in the app (or parts wrapped with the NotificationProvider). Here, all params set for the success notifications overwrite the same params set in globalConfig
errorConfigObject-Inside this object, you can pass the configuration for all error type notifications used in the app (or parts wrapped with the NotificationProvider). Here, all params set for the error notifications here overwrite the same params set in globalConfig
warningConfigObject-Inside this object, you can pass the configuration for all warning type notifications used in the app (or parts wrapped with the NotificationProvider). Here, all params set for the warning notifications here overwrite the same params set in globalConfig
infoConfigObject-Inside this object, you can pass the configuration for all info type notifications used in the app (or parts wrapped with the NotificationProvider). Here, all params set for the info notifications here overwrites the same params set in globalConfig

const { useNotifications, NotificationsProvider } = createNotifications({
defaultStylesSettings: {
darkMode: true,
globalConfig: {},
successConfig: {},
errorConfig: {},
warningConfig: {},
infoConfig: {},
},
})

Like we said above - in the config descriptions, globalConfig even if is set can be overwritten by the config of the different notifications types (successConfig / errorConfig / warningConfig / infoConfig). +You can find examples explaining it below, but first, let's find out what exactly, can we set in config objects.


⚙️ Style config object

All five configs:

  • globalConfig
  • successConfig
  • errorConfig
  • warningConfig
  • infoConfig

are the objects with the same properties.

We can set there:

NameTypeDefaultDescription
titleSizeNumber16Set font size for the notification
titleFamilyNumberios: 'San Francisco', android: 'Roboto'Set font family for the notification title
titleWeightNumber600Set font weight for the notification title
titleColorString'#505050' (darkMode - false) / '#FAFAFA' (darkMode - true)Set font color for the notification title
descriptionSizeNumber14Set font size for the notification description
descriptionFamilyNumberios: 'San Francisco', android: 'Roboto'Set font family for the notification description
descriptionWeightNumber400Set font weight for the notification description
descriptionColorString'#505050' (darkMode - false) / '#FAFAFA' (darkMode - true)Set font color for the notification description
bgColorString'#FFFFFF' (darkMode - false) / '#2D2D2D' (darkMode - true)Set background color for the notification
borderType'border' / 'accent' / 'no-border''border'Set type of border for the notification (EXAMPLES)
accentColorString'#00EA33' (success type) / '#FC6060' (error type) / '#8CACFF' (warning type) / '#FFD37D' (info type)Set accent color for the notification. The color of the border or the left side accent line
borderRadiusNumber14Set border radius for the notification container
borderWidthNumber1Set border width for the notification container
multilineNumber1Set number of visible lines for the notification description
defaultIconType'color' / 'monochromatic' / 'no-icon''color'This props works only with default icons. If you set your own icon it has no effect. (EXAMPLES)
leftIconSourceImageSourcePropType / JSX.Element-Set custom left icon for the notification (in png) or as custom component. For example. require(../assets/icon.png) / <CustomIcon name="cross"/>

🔳 Border types examples

  • 'border'

Border

  • 'accent'

Accent

  • 'no-border'

No-border

🏵️ Default icon type examples

  • 'color'

Color

  • 'monochromatic'

Monochromatic

  • 'monochromatic' (dark mode)

Monochromatic-darkMode

  • 'no-icon'

No-border

🏞️ Global styles setting examples

Let's start with the basic notification settings with some global style.


🌐 globalConfig

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications({
defaultStylesSettings: {
globalConfig: {
titleSize: 20,
titleColor: '#4B0082',
descriptionSize: 12,
descriptionColor: '#4B0082',
bgColor: '#FFFFF0',
borderType: 'accent',
borderRadius: 25,
accentColor: '#B0E0E6',
borderWidth: 3,
multiline: 5,
leftIconSource: require('../assets/custom-icon.png'),
},
},
})

export const GlobalConfigExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}>
Emit error
</Text>
</SafeAreaView>
)
}

The effect is visible below:

No-border

In globalConfig above, we have overwritten all the default values.

That means that doesn't matter now if we use error or info notification. All will now look the same. +That is what globalConfig does. It overwrites properties for all notifications. +If we set there only borderRadius property for some value, then only borderRadius would be set globally. Default values of all other properties would stay untouched:

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications({
defaultStylesSettings: {
globalConfig: {
borderRadius: 50,
},
},
})

export const GlobalConfigExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}>
Emit error
</Text>
<Text
onPress={() =>
notify('success', {
params: {
description: 'This is where the toast text goes. ',
title: 'Success',
},
})
}>
Emit success
</Text>
</SafeAreaView>
)
}

No-border +No-border

Both notifications - error and success - have their default settings. Only borderRadius has been changed for both of them because we did it in globalConfig.

ℹ️ successConfig / errorConfig / warningConfig / infoConfig

Those settings work the same as globalConfig but for different notification types.
+In other words, we can set configuration for ALL errors, ALL info, etc.

In addition successConfig / errorConfig / warningConfig / infoConfig are overwriting properties set in globalConfig.
+So if we set borderRadius in globalConfig for 50 as we did in the example above, and we will overwrite it in the successConfig for 10, then borderRadius for ALL the SUCCESS notifications will be set for 10, but for ALL OTHER it will be still 50.

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications({
defaultStylesSettings: {
globalConfig: {
borderRadius: 50,
},
successConfig: {
borderRadius: 10,
},
},
})

export const GlobalConfigExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}>
Emit error
</Text>
<Text
onPress={() =>
notify('success', {
params: {
description: 'This is where the toast text goes. ',
title: 'Success',
},
})
}>
Emit success
</Text>
</SafeAreaView>
)
}

No-border +No-border

So in conclusion -

successConfig / errorConfig / warningConfig / infoConfig overwrites globalConfig, and DEFAULT SETTINGS

globalConfig overwrites DEFAULT SETTINGS

+ + + + \ No newline at end of file diff --git a/docs/intro/default-variants-config/position/index.html b/docs/intro/default-variants-config/position/index.html new file mode 100644 index 00000000..53cd2b1c --- /dev/null +++ b/docs/intro/default-variants-config/position/index.html @@ -0,0 +1,20 @@ + + + + + +📌 Notification position | RN Notificated + + + + +
+

📌 Notification position

🎛 Changing position

You can change the position of the notifications displayed on the screen.
+There are seven possible options to choose from:

  • top - at the top of the screen
  • top-right - at the top right of the screen
  • top-left - at the top left of the screen
  • center - at the middle of the screen (y-axis)
  • bottom- at the bottom of the screen
  • bottom-right - at the bottom right of the screen
  • bottom-left - at the bottom left of the screen

The default setting for the notificationPosition is the top value.

Depending on whether you want to change the notification position for the whole app or only change it for a certain notification, you can either:


Set the position for all notifications in the global config object:

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { NotificationsProvider, useNotifications } = createNotifications({
notificationPosition: 'center',
})

export const ExampleNotification = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}>
Emit error
</Text>
</SafeAreaView>
)
}

Now all the notifications in the app will be displayed in the middle of the screen (y-axis) because we have set the notificationPosition value for the center.



Set the position locally inside config object in a single notification instance:

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { NotificationsProvider, useNotifications } = createNotifications({
notificationPosition: 'center',
})

export const ExampleNotification = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes',
title: 'Error',
},
config: {
notificationPosition: 'bottom',
},
})
}>
Emit error
</Text>
</SafeAreaView>
)
}

Now, all the notifications in the app (instead of this one error notification in the example above) will be displayed in the middle of the screen (y-axis).
+But the error notification from the example above will be displayed at the bottom of the screen because the local config overwrites the global config.
+Of course, we can just set it locally, there is no need to set it globally if we don't need to.
+(You can read more about props overwriting in the ORDER OF SETTINGS OVERWRITING section)



🔦 Position config priority

For each subsequent notification, the library looks for a notification position in the following order:

  1. First, it looks for a config defined in notify payload
  2. Secondly, it looks for a global config from createNotification
  3. At last, when no config is found, it uses the default behavior, which is top

+ + + + \ No newline at end of file diff --git a/docs/intro/default-variants-config/props-config/index.html b/docs/intro/default-variants-config/props-config/index.html new file mode 100644 index 00000000..44737cca --- /dev/null +++ b/docs/intro/default-variants-config/props-config/index.html @@ -0,0 +1,22 @@ + + + + + +📬 Single Notification Config | RN Notificated + + + + +
+

📬 Single Notification Config


Besides global settings, you can also pass props to the notification instance.
+PROPS description IS REQUIRED.
+There are two main props you can pass to the notification:

  • params
  • config
    <Text
onPress={() =>
notify('error', {
params: {},
config: {},
},
)}
>

Let's take a look at the params object properties:

NameTypeDefaultDescription
titleString''Props you can use to pass the notification title. Most of the notifications have the title, but this is not required.
descriptionString''Props you can use to pass the notification description. This props is required!
onPressFunction-The onPress props gives you possibility to pass extra function, which will be invoked when you use 'X' to close the notification
styleObject-Object with the style properties. You can pass here style settings which will be applied only to this notification instance. Style properties passed here overwrites style settings from defaultStylesSettings.
    <Text
onPress={() =>
notify('error', {
params: {
title: '',
description: '',
onPress: () => {},
style: {},
},
config: {},
},
)}
>

And in the config object:

NameTypeDefaultDescription
durationNumber3000Use this property to set how long the notifications should be displayed on the screen. Value expressed in milliseconds
notificationPosition'top' / 'center' / 'bottom''top'Set where the notifications should appear on the screen. You can choose one of three default options: top / center / bottom. To read more about the notification position please go to the NOTIFICATION POSITION section.
animationConfigObjectSlideInLeftSlideOutRightProperty responsible for the notification animation. You can set one of the animations prepared by us, or make your own config. To read more about the animation settings please go to the ANIMATIONS SETTINGS section.
onCloseFunction-The onClose config option gives you possibility to pass an extra function, which will be invoked upon dismissal of the notification (triggered by swipe gesture, remove method - e.g. close button in default variants or when notification disappears)
gestureConfigObjectiOS: 'y' / android: 'x'Object responsible for setting gesture direction that triggers swipe-dismiss of notification.
    <Text
onPress={() =>
notify('error', {
params: {},
config: {
duration: 100,
notificationPosition: 'top',
animationConfig: {},
onClose: () => {},
gestureConfig: { direction: 'y' }
},
},
)}
>


Gesture config

The library gives the possibility to swipe-dismiss the notication so users don't rely only on pressing close button or duration timeout.

There are 3 types of gesture config: none, one-dimensional and two-dimensional. By choosing none, we switch off the possibility to swipe-dismiss a notification.

We can pass gestureConfig to config object like so:

gestureConfig: {
direction: 'y' | 'x' | 'full' | 'none'
}

Default value for iOS: 'y' +Default value for Android: 'x'

By choosing full direction, we allow notifications to be dismissed in both directions. In this case, some additional config is required, like so:

  gestureConfig: {
direction: 'full',
x: { activationDistances: 50, activationVelocities: 200 },
y: { activationDistances: 50, activationVelocities: 200 },
},

✨ Style props

As we said above, in the style we can pass style settings for the notification instance.
+In fact style props have the same properties as the globalConfig, successConfig, errorConfig, warningConfig, infoConfig. +Check the GLOBAL STYLES SETTINGS

NameTypeDefaultDescription
titleSizeNumber16Set font size for the notification title
titleColorString'#505050' (darkMode - false) / '#FAFAFA' (darkMode - true)Set font color for the notification title
descriptionSizeNumber14Set font size for the notification description
descriptionColorString'#505050' (darkMode - false) / '#FAFAFA' (darkMode - true)Set font color for the notification description
bgColorString'#FFFFFF' (darkMode - false) / '#2D2D2D' (darkMode - true)Set background color for the notification
borderType'border' / 'accent' / 'no-border''border'Set type of border for the notification (EXAMPLES)
accentColorString'#00EA33' (success type) / '#FC6060' (error type) / '#8CACFF' (warning type) / '#FFD37D' (info type)Set accent color for the notification. The color of the border or the left side accent line
borderRadiusNumber14Set border radius for the notification container
borderWidthNumber1Set border width for the notification container
multilineNumber1Set number of visible lines for the notification description
defaultIconType'color' / 'monochromatic' / 'no-icon''color'This props works only with default icons. If you set your own icon it has no effect. (EXAMPLES)
leftIconSourceImageSourcePropType-Set custom left icon for the notification (in png). For example. require(../assets/icon.png)

What is important here is that the style props overwrite the styles passed in defaultStylesSettings.
+To understand it perfectly, let's take a look at the few examples below.



🖌️ Style overwriting example

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications({
defaultStylesSettings: {
globalConfig: {
titleSize: 20,
titleColor: '#4B0082',
descriptionSize: 12,
descriptionColor: '#B0E0E6',
bgColor: '#FFFFF0',
borderRadius: 25,
accentColor: '#4B0082',
borderWidth: 3,
multiline: 5,
},
errorConfig: {
descriptionSize: 12,
descriptionColor: '#4B0082',
accentColor: '#B0E0E6',
borderWidth: 2,
multiline: 10,
},
},
})

export const GlobalConfigExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
style: {
borderRadius: 15,
borderWidth: 1,
},
},
})
}>
Emit error
</Text>
</SafeAreaView>
)
}

In the beginning, we overwrote globalConfig in the default settings:

  • titleSize
  • titleColor
  • descriptionSize
  • descriptionColor
  • bgColor
  • borderRadius
  • accentColor
  • borderWidth
  • multiline

In the errorConfig we have overwritten:

  • descriptionSize
  • descriptionColor
  • accentColor
  • borderWidth
  • multiline

And in style we have overwritten:

  • borderRadius
  • accentColor
  • borderWidth

So the final style setting for this error notification is:

{
titleSize: 20,
titleColor: '#4B0082',
descriptionSize: 12,
descriptionColor: '#4B0082',
bgColor: '#FFFFF0',
borderRadius: 15,
borderWidth: 1,
accentColor: '#B0E0E6',
multiline: 10
}

Remember that title, description and onPress are not the styling props.


And the final effect:

Border



So in conclusion -

  • style object overwrites successConfig / errorConfig / warningConfig / infoConfig(depends on which notification type are you using and styling), globalConfig, and DEFAULT SETTINGS
  • successConfig / errorConfig / warningConfig / infoConfig overwrites globalConfig, and DEFAULT SETTINGS
  • globalConfig overwrites DEFAULT SETTINGS
+ + + + \ No newline at end of file diff --git a/docs/intro/default-variants-config/width/index.html b/docs/intro/default-variants-config/width/index.html new file mode 100644 index 00000000..7bc63f18 --- /dev/null +++ b/docs/intro/default-variants-config/width/index.html @@ -0,0 +1,19 @@ + + + + + +📏 Notification width | RN Notificated + + + + +
+

📏 Notification width

🎛 Changing width

You can change the width of the notifications displayed on the screen.

By default, the notificationWidth is set to 343 pixels. If you don't specify a value for notificationWidth, notifications will default to this width.

If the value you provide for notificationWidth exceeds the device's width, the notification's width will be adjusted to the device width minus the margin value.

Depending on whether you want to change the notification width for the whole app or only change it for a certain notification, you can either:


Set the width for all notifications in the global config object:

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { NotificationsProvider, useNotifications } = createNotifications({
notificationWidth: 400,
})

export const ExampleNotification = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}>
Emit error
</Text>
</SafeAreaView>
)
}

"Now, all notifications in the application will be 400 pixels wide because we've set the notificationWidth value to 400."



Set the position locally inside config object in a single notification instance:

import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'

const { NotificationsProvider, useNotifications } = createNotifications({
notificationWidth: 400,
})

export const ExampleNotification = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<Text
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes',
title: 'Error',
},
config: {
notificationWidth: 500,
},
})
}>
Emit error
</Text>
</SafeAreaView>
)
}

Now, all notifications in the app will be displayed with a width of 400 pixels, except for the error notification mentioned in the previous example.
+That error notification will have a width of 500 pixels because local configuration overrides the global setting.
+Of course, if you prefer, you can set the width locally without adjusting the global setting.
+(You can read more about props overwriting in the ORDER OF SETTINGS OVERWRITING section)



🔦 Width config priority

For each subsequent notification, the library looks for a notification width in the following order:

  1. First, it looks for a config defined in notify payload
  2. Secondly, it looks for a global config from createNotification
  3. At last, when no config is found, it uses the default behavior, which is 343 pixels

+ + + + \ No newline at end of file diff --git a/docs/intro/errors-handling/index.html b/docs/intro/errors-handling/index.html new file mode 100644 index 00000000..6bea85fe --- /dev/null +++ b/docs/intro/errors-handling/index.html @@ -0,0 +1,16 @@ + + + + + +🆘 Errors handling | RN Notificated + + + + + + + + + \ No newline at end of file diff --git a/docs/intro/examples/custom-components-examples/index.html b/docs/intro/examples/custom-components-examples/index.html new file mode 100644 index 00000000..125ce14e --- /dev/null +++ b/docs/intro/examples/custom-components-examples/index.html @@ -0,0 +1,33 @@ + + + + + +✍️ Custom components examples | RN Notificated + + + + +
+

✍️ Custom components examples


Code has been already described step by step in the DEFAULT EXAMPLES section.
+So I think there is no need to do it here again.

In custom components examples, we will create our own modal, and pass it to the library.
+Thanks to this, we will obtain the maximum possibility of customization, without losing library advantages.

Let's create our custom components:

Custom modal - advertisement

import React from 'react'
import { Image, Text, View } from 'react-native'
import { styles } from './styles'

type Props = {
customTitle: string
customDescription: string
}

export const Advertisement = ({ customTitle, customDescription }: Props) => {
return (
<View style={styles.advertisement_container}>
<Text style={styles.advertisement_title}>{customTitle}</Text>
<Image source={require('../../../../assets/doughnut.png')} style={styles.advertisement_image} />
<Text style={styles.advertisement_description}>{customDescription}</Text>
</View>
)
}

Custom modal - info

import { Image, Text, View } from 'react-native'
import React from 'react'
import { styles } from './styles'

type Props = {
customTitle: string
}

export const CustomInfo = ({ customTitle }: Props) => {
return (
<View style={styles.info_container}>
<Text style={styles.info_title}>{customTitle}</Text>
<Image source={require('../../../../assets/in_progress.png')} style={styles.info_image} />
</View>
)
}

Styles for both custom modals

import { StyleSheet } from 'react-native'

export const styles = StyleSheet.create({
advertisement_container: {
flex: 1,
backgroundColor: '#f0fffe',
borderRadius: 20,
borderWidth: 2,
borderColor: '#DCAE96',
justifyContent: 'center',
alignItems: 'center',
padding: 30,
},
advertisement_title: {
fontSize: 20,
fontWeight: 'bold',
},
advertisement_description: {
fontSize: 15,
textAlign: 'center',
},
advertisement_image: {
resizeMode: 'center',
height: 230,
},
info_container: {
width: 360,
height: 360,
borderRadius: 180,
backgroundColor: '#FFFFFF',
borderWidth: 10,
borderColor: '#000000',
justifyContent: 'center',
alignItems: 'center',
padding: 30,
},
info_title: {
fontSize: 24,
fontWeight: 'bold',
marginBottom: 20,
},
info_image: {
width: 150,
height: 150,
},
})


As you can see they're just very simple modals.
+What we need to do next is to pass those modals to the library structure.
+Please notice, that we pass props to those components. I will explain how to do it in the main component below.

Main component

import React from 'react'
import { SafeAreaView } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { styles } from './styles'
import { Advertisement } from '../components/customVariants/Advertisement'
import { CustomInfo } from '../components/customVariants/CustomInfo'
import { CustomCaseButton } from '../components/customVariants/CustomCaseButton'

const { useNotifications, NotificationsProvider } = createNotifications({
variants: {
advertisement: {
component: Advertisement,
config: {
notificationPosition: 'top',
duration: 5000,
},
},
custom_info: {
component: CustomInfo,
config: {
duration: 2000,
},
},
},
isNotch: true,
})

export const CustomCaseExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />

<CustomCaseButton
buttonTitle="Advertisement"
onPress={() =>
notify('advertisement', {
params: {
customTitle: 'The best Doughnuts in Krakow',
customDescription:
'Doughnuts are usually deep fried from a flour dough, but other types of batters can also be used. Various toppings and flavorings are used for different types, such as sugar, chocolate or maple glazing. Doughnuts may also include water, leavening, eggs, milk, sugar, oil, shortening, and natural or artificial flavors.',
},
config: {
duration: 2000,
},
})
}
/>

<CustomCaseButton
buttonTitle="Custom Info"
onPress={() =>
notify('custom_info', {
params: {
customTitle: 'In progress',
},
config: {
duration: 3000,
},
})
}
/>
</SafeAreaView>
)
}


The first step is to initialize process using createNotifications.
+In the settings, we can use property variants.
+This is the place where we will pass our components. Let's take a closer look at it:

const { useNotifications, NotificationsProvider } = createNotifications({
variants: {
advertisement: {
component: Advertisement,
config: {
notificationPosition: 'top',
duration: 5000,
},
},
custom_info: {
component: CustomInfo,
config: {
duration: 2000,
},
},
},
isNotch: true,
})

variants is an object with the keys, which are the names of the variants we want to create.
+In this case, we want to create advertisement, and the custom info, so I decided to use those names literally.
+You can name your variant whatever you like. It can be 'modal' / 'lol' / 'my_precious_variant' etc. It depends on you.

Every custom variant in also an object where we need to pass our custom component, and optionally config.
+Let's recall properties that config can take:

NameTypeDefaultDescription
durationNumber3000Use this property to set how long the notifications should be displayed on the screen. Value expressed in milliseconds
notificationPosition'top' / 'center' / 'bottom''top'Set where the notifications should appear on the screen. You can choose one of three default options: top / center / bottom. To read more about the notification position please go to the NOTIFICATION POSITION section.
animationConfigObjectSlideInLeftSlideOutRightProperty responsible for the notification animation. You can set one of the animations prepared by us, or make your own config. To read more about the animation settings please go to the ANIMATIONS SETTINGS section.

Now, our custom modals are 'injected' inside the library, and we can use them, exactly in the same way as we did with default notifications (success / error / info / warning).

What is important, that when we pass the name of the notification, then instead of the success / error / info / warning we used before, now we need to pass name we declared in the variants. In my case they are the advertisement and the custom_info +It's a first argument we pass to the notify:

<CustomCaseButton
buttonTitle="Advertisement"
onPress={() =>
notify('advertisement', {
params: {
customTitle: 'The best Doughnuts in Krakow',
customDescription:
'Doughnuts are usually deep fried from a flour dough, but other types of batters can also be used. Various toppings and flavorings are used for different types, such as sugar, chocolate or maple glazing. Doughnuts may also include water, leavening, eggs, milk, sugar, oil, shortening, and natural or artificial flavors.',
},
config: {
duration: 2000,
},
})
}
/>
<CustomCaseButton
buttonTitle="Custom Info"
onPress={() =>
notify('custom_info', {
params: {
customTitle: 'In progress',
},
config: {
duration: 3000,
},
})
}
/>

After that we have params.
+They are just literally the props we pass to our custom modal.
+In the CustomInfo we require only customTitle, so we just need to pass this one to the params.

config is still have the 3 properties we recall above. +We can pass the config when we're 'injecting' our custom modal to the library, or when we call it. It depends on you.
+Please remember that the config in the notify (when we call it) overwrites config that we declared in the 'injection' process.

Implement close button

In case you need to implement close button in your custom component, here is the code showing implementation in out 'CustomInfo' notification:

import { Image, Text, View } from 'react-native'
import { TouchableOpacity } from 'react-native-gesture-handler'
import React from 'react'
import { styles } from './styles'
import { useNotificationController } from 'react-native-notificated'

type Props = {
customTitle: string
}

export const CustomInfo = ({ customTitle }: Props) => {
const { remove } = useNotificationController()

return (
<View style={styles.info_container}>
<Text style={styles.info_title}>{customTitle}</Text>
<Image source={require('../../../../assets/in_progress.png')} style={styles.info_image} />
<TouchableOpacity
onPress={() => {
remove()
}}>
<Image source={'../../../../assets/close-regularMode.png'} style={styles.icon} />
</TouchableOpacity>
</View>
)
}

There are a few new things along with the previously shown code. +First, we need to add two imports: a 'TouchableOpacity' from react-native-gesture-handler and 'useNotificationController' hook provided with react-native-notificated. +'useNotificationController' hook returns method 'remove' which can be applied in our custom notification. +The only thing that has to be done to implement the close button is to add a close button in our return part of the component and invoke remove() on the press event.

Now let's take a look how our examples looks like:

Success

Custom info

Error

+ + + + \ No newline at end of file diff --git a/docs/intro/examples/custom-examples/index.html b/docs/intro/examples/custom-examples/index.html new file mode 100644 index 00000000..7c366c10 --- /dev/null +++ b/docs/intro/examples/custom-examples/index.html @@ -0,0 +1,17 @@ + + + + + +🧭 Custom examples | RN Notificated + + + + +
+

🧭 Custom examples


Code has been already described step by step in the DEFAULT EXAMPLES section, so I think there is no use to do it here again.

Here we have only a few differences I need to mention, and they are minimal:

  • we use modify() and remove() only in the DEFAULT EXAMPLES because their usage is limited, and the explanation there is all we need to know. We can remove the notification, or modify it, and therefore we will not be using them here and in the other examples as well. For that same reason, we will not be using useState and useNotificationController here.
  • we filled the style object in every notification. To read more about the single notification properties please go to the SINGLE NOTIFICATION CONFIG section.

In fact that's the only differences between Default Examples and Custom Examples.
+Let's take a look at the code and the visualisations then:

Code

import React from 'react'
import { SafeAreaView } from 'react-native'
import { styles } from './styles'
import { createNotifications } from 'react-native-notificated'
import { SuccessButton } from '../components/basicExamples/SuccessButton'
import { ErrorButton } from '../components/basicExamples/ErrorButton'
import { WarningButton } from '../components/basicExamples/WarningButton'
import { InfoButton } from '../components/basicExamples/InfoButton'

const { useNotifications, NotificationsProvider } = createNotifications({
isNotch: true,
})

export const SingleCustomCases = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<SuccessButton
onPress={() =>
notify('success', {
params: {
description: 'Task has been completed without any error ',
title: 'Action completed',
style: {
titleSize: 20,
descriptionSize: 14,
accentColor: '#7CFC00',
borderType: 'accent',
defaultIconType: 'monochromatic',
multiline: 2,
},
},
})
}
/>
<ErrorButton
onPress={() =>
notify('error', {
params: {
description: 'This error may damage your system. ',
title: 'Integration error',
style: {
titleSize: 25,
titleColor: '#FF0000',
descriptionSize: 12,
accentColor: '#FF0000',
borderType: 'accent',
defaultIconType: 'no-icon',
},
},
})
}
/>
<WarningButton
onPress={() =>
notify('warning', {
params: {
description:
'All the css styles are now inactive. You can fix that by setting new values in your example',
title: 'Warning',
style: {
defaultIconType: 'no-icon',
borderType: 'no-border',
multiline: 3,
},
},
})
}
/>
<InfoButton
onPress={() =>
notify('info', {
params: {
description:
'This is where the toast text goes. This text have more than one line. If the multiline is set by default, only one line is visible. Depends on the number of lines, another text parts are visible. We can set even 100 lines. If the text takes only 1 line, then size of the notification will fit',
title: 'Info',
style: {
titleSize: 22,
titleColor: '#C71585',
leftIconSource: require('../../assets/custom-info-icon-2.png'),
multiline: 8,
accentColor: '#C71585',
borderWidth: 2,
},
},
})
}
/>
</SafeAreaView>
)
}

Visualization of examples

Let's see the notifications we declared above:


Success notification

Success

Error notification

Error

Warning notification

Warning

Info notification

Info


Conclusion

Like we can see, every notification has its own style, but it doesn’t go beyond the scope of this individual notification

What we should remember is that the single notification style overwrites each of those configs:

  • globalConfig
  • successConfig
  • errorConfig
  • warningConfig
  • infoConfig

To read more please go to SINGLE NOTIFICATION CONFIG and the ORDER OF SETTINGS OVERWRITING sections.

+ + + + \ No newline at end of file diff --git a/docs/intro/examples/dark-mode-examples/index.html b/docs/intro/examples/dark-mode-examples/index.html new file mode 100644 index 00000000..44214075 --- /dev/null +++ b/docs/intro/examples/dark-mode-examples/index.html @@ -0,0 +1,19 @@ + + + + + +🖊️ Dark mode examples | RN Notificated + + + + +
+

🖊️ Dark mode examples


Code has been already described step by step in the DEFAULT EXAMPLES section.
+So I think there is no use to do it here again.
+Here we have only a few differences I need to mention, and they are minimal:

  • we use modify() and remove() only if the DEFAULT EXAMPLES because their usage is limited, and the explanation there is all we need to know. We can remove notification, or modify it. So, we will not use them here and in the other examples. Because of the same reason we will not use useState and useNotificationController here.
  • we added one extra property - darkMode in the global settings
    (because we want to show examples in the dark mode, right? 😉 )

That's the only difference between Default Examples and Dark Mode Examples.
+Let's take a look at the code and the visualizations then:

Code

import React from 'react'
import { SafeAreaView } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { SuccessButton } from '../components/basicExamples/SuccessButton'
import { ErrorButton } from '../components/basicExamples/ErrorButton'
import { WarningButton } from '../components/basicExamples/WarningButton'
import { InfoButton } from '../components/basicExamples/InfoButton'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications({
isNotch: true,
defaultStylesSettings: {
darkMode: true,
},
})

export const DarkModeExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<SuccessButton
onPress={() =>
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
},
})
}
/>
<ErrorButton
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}
/>
<WarningButton
onPress={() =>
notify('warning', {
params: {
description: 'This is where the toast text goes',
title: 'Warning',
},
})
}
/>
<InfoButton
onPress={() =>
notify('info', {
params: {
description: 'This is where the toast text goes.',
title: 'Info',
},
})
}
/>
</SafeAreaView>
)
}


Visualization of examples

Let's see the notifications we declared above:


Success notification

Success

Error notification

Error

Warning notification

Warning

Info notification

Info

+ + + + \ No newline at end of file diff --git a/docs/intro/examples/default-examples/index.html b/docs/intro/examples/default-examples/index.html new file mode 100644 index 00000000..9b8a586a --- /dev/null +++ b/docs/intro/examples/default-examples/index.html @@ -0,0 +1,29 @@ + + + + + +🔏 Default examples | RN Notificated + + + + +
+

🔏 Default examples


We prepared a lot of examples to help you understand how we can use our library.
+First, let's focus on the most basic examples. It takes very little effort to make them work.
+A few lines below, you will find all the code with explanations.
+Let's go then!

How to use the notify()

import React, { useState } from 'react'
import { SafeAreaView } from 'react-native'
import { createNotifications, useNotificationController } from 'react-native-notificated'
import { SuccessButton } from '../components/basicExamples/SuccessButton'
import { ErrorButton } from '../components/basicExamples/ErrorButton'
import { WarningButton } from '../components/basicExamples/WarningButton'
import { InfoButton } from '../components/basicExamples/InfoButton'
import { ModifyButton } from '../components/basicExamples/ModifyButton'
import { RemoveButton } from '../components/basicExamples/RemoveButton'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications({
isNotch: true,
})

export const DefaultExamples = () => {
const [id, setId] = useState('')
const { notify } = useNotifications()
const { remove, modify } = useNotificationController()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<SuccessButton
onPress={() =>
setId(
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
},
}).id
)
}
/>
<ErrorButton
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}
/>
<WarningButton
onPress={() =>
notify('warning', {
params: {
description: 'This is where the toast text goes',
title: 'Warning',
},
config: {
notificationPosition: 'center',
},
})
}
/>
<InfoButton
onPress={() =>
notify('info', {
params: {
description: 'This is where the toast text goes.',
title: 'Info',
},
})
}
/>
<ModifyButton
onPress={() =>
modify(id, {
params: {
params: { id: id, title: 'Modified title', description: 'Modified description' },
},
})
}
/>
<RemoveButton onPress={() => remove(id)} />
</SafeAreaView>
)
}

At first, we need to import everything that is necessary for our component:

  • React and useState - we will explain below why we need useState in this example

  • SafeAreaView

  • createNotifications - to set the basic config and pull out our notify() function

  • useNotificationController - to pull out remove() and modify() functions (we will explain them below)

  • SuccessButton and other buttons - are just styled Text components which imitates our buttons:

    import React, { VFC } from 'react'
    import { Text } from 'react-native'
    import { styles } from '../styles'

    type Props = {
    onPress: () => void
    }

    export const SuccessButton: VFC<Props> = ({ onPress }) => {
    return (
    <Text style={[styles.text, styles.success]} onPress={onPress}>
    Emit success
    </Text>
    )
    }


When the imports are applied, we initiate createNotifications and pick useNotifications and NotificationsProvider from the box.

  • useNotifications - allows us to get access to the notify() function
  • NotificationsProvider - it's a wrapper, like all others providers (ContextProvider, ApolloProvider etc.). This one is necessary to allow the library to operate within the prescribed scope. What is special here is that we don't need to wrap the scope in it. We can just put it as a self-closing component, and everything that is nested in the same wrapper as our provider will get access to our notifications.


Inside our DefaultExamples component we initiate state which will hold the notification ID for us.
+Last thing, we need to do is to unpack notify(), remove() and modify() methods.
+Those methods are crucial because:

  • notify() - initiate every single notification. In the examples, we trigger it by onPress, but of course, it can be called in every other context you need, for example, after data fetching or after successful sign-in.
  • remove() - externally remove triggered notification (it's not required, in the basic usage, but worth knowing)
  • modify() - modify triggered notification (it's not required, in the basic usage, but worth knowing)

If you need more info on how those methods works please check the BASIC USAGE section.

As we said above, we trigger every notification by pressing the button. All we need to pass to the onPress event is:

() => notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})

First argument is a notification type (success/error/info/warning) and the second is an object with settings, consisting of the two parts: params and config (check Single Notification Config).
+Only description props is required, but usually, it's good to have also a title. >br/> +Our notification has been set, and it looks like that:

Error

TADAM! Magic happens!! 🤗



How to use the error() and the modify()

This is a little more complicated, but just a little (I promise!)


All we need to do is to get chosen notification ID and set it in our state.
+As you can see in the code below:

() =>
setId(
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
},
config: {
notificationPosition: 'center',
},
}).id
)

We just wrapped notify() in our setId setter, and pulled id from the object returned by notify().

Now it's time to:

Pass the id to the modify() method:

    <ModifyButton
onPress={() =>
modify(id, {
params: {
params: { id: id, title: 'Modified title', description: 'Modified description' },
},
})
}
/>

and add new settings which will overwrite those previously set in the notification (the only extra value is the id in the params object).
+In other words, we can easily change any notification to a completely different one.
+In the example above we changed only the title and the description, but we literally can change any value described in the Single Notification Config section.

Pass the id to the remove() method:

<RemoveButton onPress={() => remove(id)} />

and... that's all...
+We can simply call remove() method and pass id of the notification that should be manually and externally removed.
+Why externally? Because internally (inside the notification), we have the close X icon.
+It’s simply a CLOSE BUTTON (let’s call it that) which you can use outside the notification.

Visualization of examples

Let's see the notifications we declared above:


Success notification

Success

Error notification

Error

Warning notification

Warning

Info notification

Info

Modify notification

Before

Modify

And after

Modify

Remove notification

Before

Modify

And after ;)

Modify

+ + + + \ No newline at end of file diff --git a/docs/intro/examples/global-config-examples/index.html b/docs/intro/examples/global-config-examples/index.html new file mode 100644 index 00000000..205e9fbd --- /dev/null +++ b/docs/intro/examples/global-config-examples/index.html @@ -0,0 +1,21 @@ + + + + + +✒️ Global config examples | RN Notificated + + + + +
+

✒️ Global config examples


Code has been already described step by step in the DEFAULT EXAMPLES section.
+So I think there is no use to do it here again.
+Here we have only a few differences I need to mention, and they are minimal:

  • we use modify() and remove() only if the DEFAULT EXAMPLES because their usage is limited, and the explanation there is all we need to know. We can remove the notification, or modify it. So, we will not use them here and in the other examples. Because of the same reason, we will not use useState and useNotificationController here.
  • we filled the globalConfig object in the defaultStylesSettings. This object is responsible for setting properties for all notifications. To read more please go back to the GLOBAL CONFIG section.

That's the only difference between Default Examples and Global Config Examples.
+Let's take a look at the code and the visualizations then:

Code

import React from 'react'
import { SafeAreaView } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { SuccessButton } from '../components/basicExamples/SuccessButton'
import { ErrorButton } from '../components/basicExamples/ErrorButton'
import { WarningButton } from '../components/basicExamples/WarningButton'
import { InfoButton } from '../components/basicExamples/InfoButton'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications({
isNotch: true,
defaultStylesSettings: {
darkMode: true,
},
})

export const DarkModeExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<SuccessButton
onPress={() =>
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
},
})
}
/>
<ErrorButton
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}
/>
<WarningButton
onPress={() =>
notify('warning', {
params: {
description: 'This is where the toast text goes',
title: 'Warning',
},
})
}
/>
<InfoButton
onPress={() =>
notify('info', {
params: {
description: 'This is where the toast text goes.',
title: 'Info',
},
})
}
/>
</SafeAreaView>
)
}


Visualization of examples

Let's see the notifications we declared above:


Success notification

Success

Error notification

Error

Warning notification

Warning

Info notification

Info


Conclusion

If we exclude titles and icons, we can see that all those notifications are the same.
+It's because globalConfig affects all the notifications. Doesn't matter what the type of notification is.
+To read more please go back to the GLOBAL CONFIG section.

+ + + + \ No newline at end of file diff --git a/docs/intro/examples/global-types-config-examples/index.html b/docs/intro/examples/global-types-config-examples/index.html new file mode 100644 index 00000000..276bfbe9 --- /dev/null +++ b/docs/intro/examples/global-types-config-examples/index.html @@ -0,0 +1,18 @@ + + + + + +🖋️ Global types config examples | RN Notificated + + + + +
+

🖋️ Global types config examples


Code has been already described step by step in the DEFAULT EXAMPLES section, so I think there is no use to do it here again.

Here we have only a few differences I need to mention, and they are minimal:

  • we use modify() and remove() only in the DEFAULT EXAMPLES because their usage is limited, and the explanation there is all we need to know. We can remove the notification, or modify it, and therefore we will not be using them here and in the other examples as well. For that same reason, we will not be using useState and useNotificationController here.
  • we filled the successConfig, errorConfig, warningConfig and the infoConfig objects in the defaultStylesSettings. Those objects are responsible for setting properties for all notifications in the given type. To read more please go back to the GLOBAL CONFIG section.

That's the only difference between Default Examples and Global Types Config Examples.
+Let's take a look at the code and the visualizations then:

Code

import React from 'react'
import { SafeAreaView } from 'react-native'
import { createNotifications } from 'react-native-notificated'
import { SuccessButton } from '../components/basicExamples/SuccessButton'
import { ErrorButton } from '../components/basicExamples/ErrorButton'
import { WarningButton } from '../components/basicExamples/WarningButton'
import { InfoButton } from '../components/basicExamples/InfoButton'
import { styles } from './styles'

const { useNotifications, NotificationsProvider } = createNotifications({
isNotch: true,
defaultStylesSettings: {
successConfig: {
leftIconSource: require('../../assets/custom-success-icon.png'),
titleSize: 15,
titleColor: '#006400',
descriptionSize: 12,
descriptionColor: '#006400',
bgColor: '#F5F5F5',
borderRadius: 5,
accentColor: '#7FFF00',
borderWidth: 2,
},
errorConfig: {
leftIconSource: require('../../assets/custom-error-icon.png'),
titleSize: 18,
titleColor: '#8B0000',
descriptionSize: 12,
bgColor: '#DEB887',
borderRadius: 15,
accentColor: '#8B0000',
},
warningConfig: {
leftIconSource: require('../../assets/custom-warning-icon.png'),
titleSize: 20,
titleColor: '#fff',
descriptionSize: 14,
descriptionColor: '#fff',
bgColor: '#191970',
borderRadius: 10,
accentColor: '#FF8C00',
borderWidth: 3,
multiline: 3,
},
infoConfig: {
leftIconSource: require('../../assets/custom-info-icon.png'),
titleSize: 20,
titleColor: '#1E90FF',
descriptionSize: 14,
descriptionColor: '#1E90FF',
borderWidth: 0,
multiline: 4,
},
},
})

export const GlobalTypesConfigExamples = () => {
const { notify } = useNotifications()

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />
<SuccessButton
onPress={() =>
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
},
})
}
/>
<ErrorButton
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
},
})
}
/>
<WarningButton
onPress={() =>
notify('warning', {
params: {
description: 'This is where the toast text goes',
title: 'Warning',
},
})
}
/>
<InfoButton
onPress={() =>
notify('info', {
params: {
description: 'This is where the toast text goes.',
title: 'Info',
},
})
}
/>
</SafeAreaView>
)
}



Visualization of examples

Let's see the notifications we declared above:


Success notification

Success

Error notification

Error

Warning notification

Warning

Info notification

Info


Conclusion

All notifications of the same type will have the same style properties.

Importantly, the successConfig, errorConfig, warningConfig and the infoConfig overwrites the globalConfig setting, but only for its own types.
+To find out more, go back to the GLOBAL CONFIG
and the ORDER OF SETTINGS OVERWRITING sections.

+ + + + \ No newline at end of file diff --git a/docs/intro/examples/notification-in-modal-example/index.html b/docs/intro/examples/notification-in-modal-example/index.html new file mode 100644 index 00000000..ec84eaa8 --- /dev/null +++ b/docs/intro/examples/notification-in-modal-example/index.html @@ -0,0 +1,16 @@ + + + + + +🔔 Notifcation In Modal Example | RN Notificated + + + + +
+

🔔 Notifcation In Modal Example


Code has been already described step by step in the DEFAULT EXAMPLES section, so I think there is no use to do it here again.

In fact the only differences between Default Examples and Notification In Modal Example are:

  1. We are using an additional ModalNotificationsProvider.
  2. We are passing isModalNotification to notify function.
  3. We can use notificationTopPosition as ModalNotificationsProvider props to change position of our notification.

Let's take a look at the code:

Code

import React, { useState } from 'react'
import { SafeAreaView, Text } from 'react-native'
import Modal from 'react-native-modal'
import { createNotifications } from 'react-native-notificated'
import { SuccessButton } from '../components/basicExamples/SuccessButton'
import { ErrorButton } from '../components/basicExamples/ErrorButton'
import { WarningButton } from '../components/basicExamples/WarningButton'
import { InfoButton } from '../components/basicExamples/InfoButton'
import { styles } from './styles'
import { TouchableOpacity } from 'react-native-gesture-handler'

const { useNotifications, NotificationsProvider, ModalNotificationsProvider } =
createNotifications()

export const NotificationInModalExample = () => {
const { notify } = useNotifications()
const [isModalOpened, setIsModalOpened] = useState(false)

return (
<SafeAreaView style={styles.container}>
<NotificationsProvider />

<TouchableOpacity onPress={() => setIsModalOpened(true)} style={styles.modalButton}>
<Text style={styles.modalButtonsText}>Open Modal</Text>
</TouchableOpacity>

<Modal
isVisible={isModalOpened}
onBackdropPress={() => setIsModalOpened(false)}
style={styles.modal}>
<ModalNotificationsProvider notificationTopPosition={0} />

<TouchableOpacity onPress={() => setIsModalOpened(false)} style={styles.modalButton}>
<Text style={styles.modalButtonsText}>Close Modal</Text>
</TouchableOpacity>

<SuccessButton
onPress={() =>
notify('success', {
params: {
description: 'This is where the toast text goes',
title: 'Success',
isModalNotification: true,
},
}).id
}
/>
<ErrorButton
onPress={() =>
notify('error', {
params: {
description: 'This is where the toast text goes. ',
title: 'Error',
isModalNotification: true,
},
config: {
duration: 2000,
},
})
}
/>

<WarningButton
onPress={() =>
notify('warning', {
params: {
description: 'This is where the toast text goes',
title: 'Warning',
isModalNotification: true,
},
})
}
/>

<InfoButton
onPress={() =>
notify('info', {
params: {
description: 'This is where the toast text goes.',
title: 'Info',
isModalNotification: true,
},
config: {
notificationPosition: 'bottom',
},
})
}
/>
</Modal>
</SafeAreaView>
)
}

Conclusion

To display notifications over modal we have to use additional ModalNotificationsProvider. But because of how the library is built, it will result with multiple notifications being displayed (each for every NotificationsProvider or ModalNotificationsProvider). To address this problem, we need to pass additional property to notify function params: isModalNotification:true.

You shouldn't pass isModalNotification to notify function if you are not using it with ModalNotificationsProvider as it won't work at all.

We also have props called notificationTopPosition. In other examples we are using notificationPosition but because styling in modal isn't so simple and we don't know what your modal looks like you have to pass notificationTopPosition by yourself. Keep in mind that notificationTopPosition={0} will render notification on top of your modal.

This is probably a temporary solution until we find something that will work globaly and out of the box.

+ + + + \ No newline at end of file diff --git a/docs/intro/examples/push-notifications-example/index.html b/docs/intro/examples/push-notifications-example/index.html new file mode 100644 index 00000000..baf17942 --- /dev/null +++ b/docs/intro/examples/push-notifications-example/index.html @@ -0,0 +1,19 @@ + + + + + +📭 Push notifications example | RN Notificated + + + + +
+

📭 Push notifications example

Here's an example of how you can handle push notifications in your application (when in foreground) using Firebase +Let's go then! 💪

💡 Setup

Before we jump into setup proccess, make sure that you have created a new firebase project. You will need it later to send push notifications. If you haven't done it yet, you can do it here.

With a new firebase project created, it's time to proceed with installation of these two packages that will be necessary to handle push notifications:

info

Documentation clearly describes the whole process of installation, so I will not focus on it here. +Before proceeding to the next step, make sure you have done all previous steps.

👀 Example Implementation

App in Foreground

To handle push notifications in foreground we have to create a listener which will subscribe for all incoming firebase push events. +We can do this by using messaging().onMessage() from @react-native-firebase/messaging. Method onMessage() takes an asynchronous function as a parameter, with an argument which is the push notification payload. Now we can use this data to set our in-app notification with a notify():

// ** imports
import messaging from '@react-native-firebase/messaging'
import { useNotifications } from 'react-native-notificated'

export const App = () => {
const { notify } = useNotifications()

useEffect(() => {
const unsubscribe = messaging().onMessage(async (remoteMessage) => {
notify('info', {
params: {
title: remoteMessage.notification?.title || 'defalut title',
description: remoteMessage.notification?.body,
},
})
})

return unsubscribe
}, [notify])

return // Some JSX
}
+ + + + \ No newline at end of file diff --git a/docs/intro/examples/redux-example/index.html b/docs/intro/examples/redux-example/index.html new file mode 100644 index 00000000..650c45a8 --- /dev/null +++ b/docs/intro/examples/redux-example/index.html @@ -0,0 +1,25 @@ + + + + + +🔥 Redux example | RN Notificated + + + + +
+

🔥 Redux example


This example is quite different from the previous ones.
+Our goal here is to show you how we can use RN Notifications library in real-life, in a more complicated environment.
+For this reason, we built a dummy login screen.
+In this example, we use the Redux Toolkit library.
+Let's go step by step through it, and check where exactly notifications were triggered.

Redux Example component

import React from 'react'
import { store } from '../redux/store'
import { Provider } from 'react-redux'
import { LoginForm } from '../components/loginForm/LoginForm'
import { createNotifications } from 'react-native-notificated'

const { NotificationsProvider } = createNotifications({
isNotch: true,
})

export const ReduxExample = () => {
return (
<Provider store={store}>
<NotificationsProvider />
<LoginForm />
</Provider>
)
}

Redux Example is the main component, where we apply redux Provider, NotificationsProvider and render LoginForm component.

Let's check what happened here:

  • we imported React (of course), store (previously created), redux Provider, LoginForm component (previously created) and well known createNotifications
  • we didn't pick useNotifications hook. Only createNotification, because we're not triggering notifications here
  • because NotificationsProvider is applied on the same level as LoginForm we have access to the notifications inside the form

Visualisation

Success


Store

import { configureStore } from '@reduxjs/toolkit'
import formReducer from './reducers'

export const store = configureStore({
reducer: {
form: formReducer,
},
})

export type RootState = ReturnType<typeof store.getState>
export type AppDispatch = typeof store.dispatch

In the store.ts file, we:

  • import configureStore function, from @reduxjs/toolkit. That function is necessary to create the store.
  • import formReducer (we will describe this function in the next paragraphs)
  • create store with configureStore function, and pass formReducer as a reducer there, with a key form
  • export two types: RootState and AppDispatch which we use to type useDispatch and useSelector hooks (we will come back to them soon)

Hooks

import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'
import type { RootState, AppDispatch } from './store'

export const useAppDispatch = () => useDispatch<AppDispatch>()
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector

We're now inside the hooks.ts.
+Because we use typescript, we also want to type useDispatch and useSelector provided by Redux. +Thanks to that we received useAppDispatch function which is a typed useDispatch and useAppSelector which is typed useSelector +We will use them in the app, instead of using useDispatch and useSelector.


Reducers

This file (reducers.ts) is most important for us, because we use our notify() function here.

import { createSlice, Dispatch, PayloadAction } from '@reduxjs/toolkit'
import { notify } from '../components/loginForm/LoginForm'

type FormState = {
login: string
password: string
}

const initialState: FormState = {
login: '',
password: '',
}

export const formSlice = createSlice({
name: 'form',
initialState,
reducers: {
updateLogin: (state, action: PayloadAction<string>) => {
state.login = action.payload
},
updatePassword: (state, action: PayloadAction<string>) => {
state.password = action.payload
},
submit: (state) => {
if (state.login.length < 4) {
notify('error', {
params: {
title: 'Incorrect login',
description: 'Login must contain at least 4 characters. ',
style: {
multiline: 2,
},
},
})
}
if (state.password.length < 4) {
notify('error', {
params: {
title: 'Incorrect password',
description: 'Password must contain at least 4 characters. ',
style: {
multiline: 2,
},
},
})
}
notify('success', {
params: {
title: 'Welcome again',
description: 'You have successfully signed in. ',
style: {
multiline: 2,
},
},
})
},
},
})

export const { updateLogin, updatePassword, submit } = formSlice.actions

export default formSlice.reducer

export const fetchUsers = (dispatch: Dispatch) => {
setTimeout(() => dispatch(submit()), 2000)
}

In this file we:

  • import function and types: createSlice, Dispatch, PayloadAction from the @reduxjs/toolkit
  • and the notify() function from the LoginForm component. Why from there? In our opinion, it belongs there. We just want to use it in the reducers.ts file, that's why we have imported it here
  • create the type for our initialState (type FormState), and create initialState which contains only login and password, because it's all we need in our simple form
  • create formSlice which contains our reducers: updateLogin, updatePassword and submit.
    +The updateLogin and the updatePassword are just updaters, which are responsible for our state change, but submit is a function that sends our data to the backend (Of course, as we can see, it is not doing that. It's just making simple validation, and check if the login and the password have at least 4 characters but shhh ;) ).
    +If there is a problem with validation, our error notifications are used. If everything is fine, we use success notification.
  • after that, we just export our reducer function and the reducer itself
  • The last step is to create fetchUsers function, which imitates the time we need to get a response from the backend. In fact, we just wrap our submit here

This is where we used our notify() function. Let's go to the last file: LoginForm where we use all of that.


Login Form

import React from 'react'
import {
NativeSyntheticEvent,
SafeAreaView,
Text,
TextInput,
TextInputChangeEventData,
TouchableOpacity,
View,
} from 'react-native'
import { fetchUsers, updateLogin, updatePassword } from '../../redux/reducers'
import { useAppDispatch, useAppSelector } from '../../redux/hooks'
import { styles } from './styles'
import { createNotifications } from 'react-native-notificated'

export const { notify } = createNotifications()

export const LoginForm = () => {
const login = useAppSelector((state) => state.form.login)
const password = useAppSelector((state) => state.form.password)
const dispatch = useAppDispatch()

const handleLoginChange = (e: NativeSyntheticEvent<TextInputChangeEventData>) => {
dispatch(updateLogin(e.nativeEvent.text))
}

const handlePasswordChange = (e: NativeSyntheticEvent<TextInputChangeEventData>) => {
dispatch(updatePassword(e.nativeEvent.text))
}

return (
<SafeAreaView style={styles.container}>
<Text style={styles.title}> Sign In </Text>
<View style={styles.form}>
<Text style={styles.label}>E Mail</Text>
<TextInput onChange={handleLoginChange} value={login} style={styles.input} />
<Text style={styles.label}>Password</Text>
<TextInput
onChange={handlePasswordChange}
value={password}
style={styles.input}
secureTextEntry
/>
<TouchableOpacity style={styles.button} onPress={() => fetchUsers(dispatch)}>
<Text style={styles.buttonText}>Confirm</Text>
</TouchableOpacity>
</View>
</SafeAreaView>
)
}

So again at the beginning, we need to import everything we need:

  • react native components and event
  • our reducers (please remember that fetchUsers is in fact submit with setTimeout)
  • our hooks, because we use them instead of useDispatch and useSelector
  • styles (previously prepared)
  • and createNotifications to get access to the notify()

After that we pick and export notify() (we're using it in the reducers.ts file).

Our LoginForm component consists of:

  • login (that we pull from the state)
  • password (that we pull from the state)
  • dispatch function
  • handleLoginChange function (where we dispatch updateLogin)
  • handlePasswordChange function (where we dispatch updatePassword)

In fact, that is all...

We need to pass the function to the inputs and the submit button.

Now let’s take a look at our notifications when we provide an invalid email or password vs. when we enter valid data.

Incorrect Login

Success


Incorrect Password

Success


You have successfully logged in

Success


+ + + + \ No newline at end of file diff --git a/docs/intro/index.html b/docs/intro/index.html new file mode 100644 index 00000000..2852fce9 --- /dev/null +++ b/docs/intro/index.html @@ -0,0 +1,16 @@ + + + + + +👋🏼 Getting Started | RN Notificated + + + + +
+

👋🏼 Getting Started

🏹 Requirements

  • react-native >= 0.62.0
  • reanimated >= 2
  • react-native-gesture-handler >= 1.10.3
  • typescript >= 4.1.0 (if you use TypeScript)
  • expo >= 41 (if you use Expo)

🚀 Installation

yarn add react-native-notificated

🔥 New Architecture

React-native-notificated is fully compatible with React new architecture on both Android and iOS.

🛸 Dependencies

This library requires these dependencies to be installed in your project:

yarn add react-native-reanimated react-native-gesture-handler
info

react-native-reanimated requires additional installation steps: guide here 👈

info

react-native-gesture-handler requires additional installation steps: guide here 👈

❤️ Built With

+ + + + \ No newline at end of file diff --git a/docs/intro/types/custom-components-examples/index.html b/docs/intro/types/custom-components-examples/index.html new file mode 100644 index 00000000..e41872ee --- /dev/null +++ b/docs/intro/types/custom-components-examples/index.html @@ -0,0 +1,18 @@ + + + + + +🔧 Specifying default types | RN Notificated + + + + +
+

🔧 Specifying default types


Instead of using useNotification returned by createNotifications() you can default specify types by adding global type declarations. +This will overwrite types of useNotification, notify, modify, remove imported from react-native-notificated

To achieve that you need to create a d.ts file e.g. notificated.d.ts with content like this:

declare global {
namespace Notificated {
interface CustomVariants {}
}
}

You have two ways to provide your types.

First one assumes that you will prepare them manually like this.

import { Variant } from 'react-native-notificated'

type Variants = {
variantName: Variant<typeof YourComponent>
}

declare global {
namespace Notificated {
interface CustomVariants extends Variants {}
}
}

Second one assumes that you will use utility type provided by library. +This approach assumes that configuration is your source of type. If you change your configuration the types will not require update.

import { createNotifications } from 'react-native-notificated'

const { CustomVariantsTypeHelper } = createNotifications({
variants: {
variantName: { component: YourComponent },
},
})

type Variants = typeof CustomVariantsTypeHelper

declare global {
namespace Notificated {
interface CustomVariants extends Variants {}
}
}
+ + + + \ No newline at end of file diff --git a/img/blackLineLeft.svg b/img/blackLineLeft.svg new file mode 100644 index 00000000..1bd49366 --- /dev/null +++ b/img/blackLineLeft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/blackLineRight.svg b/img/blackLineRight.svg new file mode 100644 index 00000000..fa6f776b --- /dev/null +++ b/img/blackLineRight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/blueLineLeft.svg b/img/blueLineLeft.svg new file mode 100644 index 00000000..35942d19 --- /dev/null +++ b/img/blueLineLeft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/blueLineRight.svg b/img/blueLineRight.svg new file mode 100644 index 00000000..08b419e8 --- /dev/null +++ b/img/blueLineRight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/docusaurus.png b/img/docusaurus.png new file mode 100644 index 00000000..f458149e Binary files /dev/null and b/img/docusaurus.png differ diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 00000000..c01d54bc Binary files /dev/null and b/img/favicon.ico differ diff --git a/img/githubBlack.png b/img/githubBlack.png new file mode 100644 index 00000000..412f6a14 Binary files /dev/null and b/img/githubBlack.png differ diff --git a/img/githubWhite.png b/img/githubWhite.png new file mode 100644 index 00000000..53e848e5 Binary files /dev/null and b/img/githubWhite.png differ diff --git a/img/hero.png b/img/hero.png new file mode 100644 index 00000000..a5a67768 Binary files /dev/null and b/img/hero.png differ diff --git a/img/lightningBlackLeft.svg b/img/lightningBlackLeft.svg new file mode 100644 index 00000000..d4cbe54e --- /dev/null +++ b/img/lightningBlackLeft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/lightningBlackRight.svg b/img/lightningBlackRight.svg new file mode 100644 index 00000000..edf25e43 --- /dev/null +++ b/img/lightningBlackRight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/lightningWhiteLeft.svg b/img/lightningWhiteLeft.svg new file mode 100644 index 00000000..33db1051 --- /dev/null +++ b/img/lightningWhiteLeft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/lightningWhiteRight.svg b/img/lightningWhiteRight.svg new file mode 100644 index 00000000..7351ee9f --- /dev/null +++ b/img/lightningWhiteRight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 00000000..2f9761e1 --- /dev/null +++ b/img/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/notificated_logo.png b/img/notificated_logo.png new file mode 100644 index 00000000..453150e9 Binary files /dev/null and b/img/notificated_logo.png differ diff --git a/img/notificated_logo_small.png b/img/notificated_logo_small.png new file mode 100644 index 00000000..809961cd Binary files /dev/null and b/img/notificated_logo_small.png differ diff --git a/img/tutorial/docsVersionDropdown.png b/img/tutorial/docsVersionDropdown.png new file mode 100644 index 00000000..ff1cbe68 Binary files /dev/null and b/img/tutorial/docsVersionDropdown.png differ diff --git a/img/tutorial/localeDropdown.png b/img/tutorial/localeDropdown.png new file mode 100644 index 00000000..d7163f96 Binary files /dev/null and b/img/tutorial/localeDropdown.png differ diff --git a/img/underline.svg b/img/underline.svg new file mode 100644 index 00000000..52d2ea69 --- /dev/null +++ b/img/underline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/undraw_docusaurus_mountain.svg b/img/undraw_docusaurus_mountain.svg new file mode 100644 index 00000000..431cef2f --- /dev/null +++ b/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/undraw_docusaurus_react.svg b/img/undraw_docusaurus_react.svg new file mode 100644 index 00000000..e4170504 --- /dev/null +++ b/img/undraw_docusaurus_react.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/undraw_docusaurus_tree.svg b/img/undraw_docusaurus_tree.svg new file mode 100644 index 00000000..a05cc03d --- /dev/null +++ b/img/undraw_docusaurus_tree.svg @@ -0,0 +1 @@ +docu_tree \ No newline at end of file diff --git a/img/whiteLineLeft.svg b/img/whiteLineLeft.svg new file mode 100644 index 00000000..b7a5b700 --- /dev/null +++ b/img/whiteLineLeft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/whiteLineRIght.svg b/img/whiteLineRIght.svg new file mode 100644 index 00000000..44e7b056 --- /dev/null +++ b/img/whiteLineRIght.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..e8202580 --- /dev/null +++ b/index.html @@ -0,0 +1,16 @@ + + + + + +Hello from RN Notificated | RN Notificated + + + + +
+

Blazingly super fast RN notification library

Better than your delivery man!

+ + + + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html new file mode 100644 index 00000000..83210864 --- /dev/null +++ b/markdown-page/index.html @@ -0,0 +1,16 @@ + + + + + +Markdown page example | RN Notificated + + + + +
+

Markdown page example

You don't need React to write simple standalone pages.

+ + + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..06786655 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://thewidlarzgroup.github.io/react-native-notificated/markdown-pageweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/api/apiReferenceweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/api/typesweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/weekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/animations/changing-transitionsweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/animations/custom-transitionsweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/basics/basic-configurationweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/basics/basic-usageweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/comprehensive-configuration/global-notifications-settingsweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/comprehensive-configuration/order-of-settings-overwritingweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/default-variants-config/default-variantsweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/default-variants-config/global-configweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/default-variants-config/positionweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/default-variants-config/props-configweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/default-variants-config/widthweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/errors-handling/weekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/custom-components-examplesweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/custom-examplesweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/dark-mode-examplesweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/default-examplesweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/global-config-examplesweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/global-types-config-examplesweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/notification-in-modal-exampleweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/push-notifications-exampleweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/examples/redux-exampleweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/docs/intro/types/custom-components-examplesweekly0.5https://thewidlarzgroup.github.io/react-native-notificated/weekly0.5 \ No newline at end of file