From b7c0ba07dd4e3385e5f41415a5d6568e47879a88 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sat, 13 Jul 2024 06:05:08 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2017b53?= =?UTF-8?q?7b43382801588eca47f8aba0b2c27b66372=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .nojekyll | 0 404.html | 17 ++++ assets/css/styles.f5bf2de4.css | 1 + assets/js/17896441.d996d4aa.js | 1 + assets/js/1b07b6fc.83bd466d.js | 1 + assets/js/1be78505.8e41a826.js | 1 + assets/js/22af610e.2434757f.js | 1 + assets/js/248.c444465d.js | 1 + assets/js/3cf897a6.32c3cddd.js | 1 + assets/js/54499202.df95050f.js | 1 + assets/js/643a1cfb.0e118a76.js | 1 + assets/js/6476eba6.c3360b8e.js | 1 + assets/js/935f2afb.2153a8f6.js | 1 + assets/js/bc0739f3.f79734fb.js | 1 + assets/js/c4f5d8e4.4a28788c.js | 1 + assets/js/d589d3a7.2aa061c7.js | 1 + assets/js/ff96e220.ee219e64.js | 1 + assets/js/main.d752a5d4.js | 2 + assets/js/main.d752a5d4.js.LICENSE.txt | 134 +++++++++++++++++++++++++ assets/js/runtime~main.2c5661b1.js | 1 + docs/api-key/index.html | 24 +++++ docs/apis/air-pollution/index.html | 22 ++++ docs/apis/current-weather/index.html | 19 ++++ docs/apis/uv-index/index.html | 19 ++++ docs/apis/weather-forecast/index.html | 19 ++++ docs/getting-started/index.html | 22 ++++ docs/usage/index.html | 28 ++++++ img/favicon.ico | Bin 0 -> 321988 bytes img/logo.svg | 107 ++++++++++++++++++++ index.html | 17 ++++ search-index-docs-default-current.json | 1 + sitemap.xml | 1 + 32 files changed, 448 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 assets/css/styles.f5bf2de4.css create mode 100644 assets/js/17896441.d996d4aa.js create mode 100644 assets/js/1b07b6fc.83bd466d.js create mode 100644 assets/js/1be78505.8e41a826.js create mode 100644 assets/js/22af610e.2434757f.js create mode 100644 assets/js/248.c444465d.js create mode 100644 assets/js/3cf897a6.32c3cddd.js create mode 100644 assets/js/54499202.df95050f.js create mode 100644 assets/js/643a1cfb.0e118a76.js create mode 100644 assets/js/6476eba6.c3360b8e.js create mode 100644 assets/js/935f2afb.2153a8f6.js create mode 100644 assets/js/bc0739f3.f79734fb.js create mode 100644 assets/js/c4f5d8e4.4a28788c.js create mode 100644 assets/js/d589d3a7.2aa061c7.js create mode 100644 assets/js/ff96e220.ee219e64.js create mode 100644 assets/js/main.d752a5d4.js create mode 100644 assets/js/main.d752a5d4.js.LICENSE.txt create mode 100644 assets/js/runtime~main.2c5661b1.js create mode 100644 docs/api-key/index.html create mode 100644 docs/apis/air-pollution/index.html create mode 100644 docs/apis/current-weather/index.html create mode 100644 docs/apis/uv-index/index.html create mode 100644 docs/apis/weather-forecast/index.html create mode 100644 docs/getting-started/index.html create mode 100644 docs/usage/index.html create mode 100644 img/favicon.ico create mode 100644 img/logo.svg create mode 100644 index.html create mode 100644 search-index-docs-default-current.json create mode 100644 sitemap.xml diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..f2eb217 --- /dev/null +++ b/404.html @@ -0,0 +1,17 @@ + + + + + +Page Not Found | OpenWeatherMap PHP API + + + + +
+
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.f5bf2de4.css b/assets/css/styles.f5bf2de4.css new file mode 100644 index 0000000..88a7f4e --- /dev/null +++ b/assets/css/styles.f5bf2de4.css @@ -0,0 +1 @@ +.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}:root,body.dark,body[data-theme=dark]{--aa-icon-color-rgb:119,119,163;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.aa-List,.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-primary:#3578e5;--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:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#46cbae;--ifm-color-primary-lighter:#66d4bd;--ifm-color-primary-lightest:#92e0d0;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px rgba(35,38,59,.1),0 6px 16px -4px rgba(35,38,59,.15);--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-alpha:1;--aa-search-input-height:36px;--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}*,.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-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{-webkit-column-gap:var(--ifm-avatar-intro-margin);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;-webkit-filter:var(--ifm-breadcrumb-separator-filter);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:-webkit-any-link: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;-webkit-transform:translateY(-1px);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);-webkit-transform:translateY(-.625rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility,-webkit-transform;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;-webkit-transform:translateY(-50%);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{-webkit-transform:rotate(90deg);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__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;content:"";-webkit-filter:var(--ifm-menu-link-sublist-icon-filter);filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;margin-left:auto;min-width:1.25rem;-webkit-transform:rotate(180deg);transform:rotate(180deg);transition:-webkit-transform var(--ifm-transition-fast) linear;transition:transform var(--ifm-transition-fast) linear;transition:transform var(--ifm-transition-fast) linear,-webkit-transform var(--ifm-transition-fast) linear;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;content:"";-webkit-filter:var(--ifm-menu-link-sublist-icon-filter);filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;-webkit-transform:rotate(180deg);transform:rotate(180deg);transition:-webkit-transform var(--ifm-transition-fast) linear;transition:transform var(--ifm-transition-fast) linear;transition:transform var(--ifm-transition-fast) linear,-webkit-transform var(--ifm-transition-fast) linear;width:1.25rem}.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)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:-webkit-sticky;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::-webkit-input-placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.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);-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform,-webkit-transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{-webkit-transform:translateZ(0);transform:translateZ(0)}.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));-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform var(--ifm-transition-fast) ease-in-out;transition:transform var(--ifm-transition-fast) ease-in-out;transition:transform var(--ifm-transition-fast) ease-in-out,-webkit-transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{-webkit-transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0);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{-webkit-column-gap:var(--ifm-pagination-page-spacing);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)}.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;-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px);width:100px}.docusaurus-highlight-code-line{background-color:#484d5b;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.aa-ClearButton[hidden],.aa-ItemContent:empty,.aa-LoadingIndicator[hidden],.aa-Source:empty,.aa-SourceHeader:empty,.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}.aa-Form,.toggleButton_gllP{align-items:center;width:100%;display:flex}.toggleButton_gllP{border-radius:50%;height:100%;justify-content:center;transition:background var(--ifm-transition-fast)}.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}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-muted-color-alpha:1}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid rgba(128,126,163,.8);border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;line-height:1em;margin:0;position:relative}.aa-ClearButton,.aa-Input,.aa-SubmitButton{border:0;background:none}.aa-Form[focus-within]{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-Form:focus-within{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}.aa-SubmitButton{-webkit-appearance:none;appearance:none;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;appearance:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::-webkit-input-placeholder{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input::placeholder{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:0}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.8333333333px;padding:0 calc(var(--aa-spacing)*.83333 - .5px)}.aa-Item,.aa-ItemIcon{align-items:center;border-radius:3px}.aa-ClearButton:focus,.aa-ClearButton:hover,.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px rgba(35,38,59,.1),0 6px 16px -4px rgba(35,38,59,.15);box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in,-webkit-filter .2s ease-in}.aa-Panel button{-webkit-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{-webkit-filter:grayscale(1);filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border:3px solid #eaeaea;border-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-radius:9999px;border-right:2px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,rgba(128,126,163,.14));background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),rgba(128,126,163,.14));border:1px solid rgba(128,126,163,.6);border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px rgba(76,69,88,.15);color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 0 0 1px rgba(128,126,163,.3);box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;cursor:pointer;display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle,.tocCollapsibleContent_vkbj a{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:rgba(128,126,163,.64);border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-PanelFooter:after,.aa-PanelHeader:after{position:absolute;pointer-events:none;right:0;content:"";left:0}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription:empty{display:none}.aa-ItemContentDescription mark{background:rgba(245,223,77,.5);background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:rgba(62,52,211,.2);background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);align-items:center;color:inherit;display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.3333333333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.3333333333px;margin:calc(var(--aa-spacing)/3);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,hsla(0,0%,100%,0));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);height:8px;height:var(--aa-spacing-half)}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 rgba(128,126,163,.3);box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(hsla(0,0%,100%,0),rgba(128,126,163,.6));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));height:16px;height:var(--aa-spacing);opacity:.12;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px rgba(35,38,59,.1),0 6px 16px -4px rgba(35,38,59,.15);box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid rgba(128,126,163,.3);border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px rgba(128,126,163,.3);box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid rgba(128,126,163,.8);border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:hsla(244,6%,48%,.4);background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,hsla(0,0%,100%,0));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(hsla(0,0%,100%,0),#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}.navbarHideable_m1mJ{transition:-webkit-transform var(--ifm-transition-fast) ease;transition:transform var(--ifm-transition-fast) ease;transition:transform var(--ifm-transition-fast) ease,-webkit-transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{-webkit-transform:translate3d(0,calc(-100% - 2px),0);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{display:flex;flex:1 0 auto;flex-direction:column}.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%;-webkit-transform:translate(50%,-50%) rotate(-45deg);transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;-webkit-transform:translateY(-50%);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:"";-webkit-filter:var(--ifm-menu-link-sublist-icon-filter);filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;-webkit-transform:rotate(180deg);transform:rotate(180deg);transition:-webkit-transform var(--ifm-transition-fast);transition:transform var(--ifm-transition-fast);transition:transform var(--ifm-transition-fast),-webkit-transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{-webkit-transform:none;transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.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}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.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:"#"}.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{-webkit-column-gap:.2rem;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:-webkit-sticky;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%;-webkit-transform:translate(-50%,-50%) scale(.33);transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;-webkit-transform:scale(.33);transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;-webkit-transform:translate(-50%,-50%) scale(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;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;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)}.img_ev3q{height:auto}.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}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.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;-webkit-transform:scale(0);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;-webkit-transform:scale(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)}.collapseSidebarButton_PEFL{display:none;margin:0}.docSidebarContainer_b6E3,.sidebarLogo_isFc{display:none}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.heroBanner_UJJx{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_pzbO{justify-content:center}.buttons_pzbO,.features_keug{align-items:center;display:flex}.features_keug{padding:2rem 0;width:100%}.featureImage_yA8i{height:200px;width:200px}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}: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}.docItemCol_VOVn{max-width:75%!important}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:-webkit-sticky;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{-webkit-transform:rotate(0);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%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;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;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{-webkit-transform:rotate(180deg);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)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:-webkit-sticky;position:sticky;top:0}.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}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@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:966px){.heroBanner_UJJx{padding:2rem}}@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 (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}.aa-TouchOnly{display:none}}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/ 2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}.aa-ClearButton{padding:0 10.1666666667px;padding:0 calc(var(--aa-spacing)*.66667 - .5px)}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}.aa-DesktopOnly{display:none}}@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 screen and (prefers-reduced-motion){.aa-Panel{transition:none}}@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/js/17896441.d996d4aa.js b/assets/js/17896441.d996d4aa.js new file mode 100644 index 0000000..5b00d34 --- /dev/null +++ b/assets/js/17896441.d996d4aa.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[918],{4137:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return v}});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 o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(n),p=r,v=d["".concat(c,".").concat(p)]||d[p]||m[p]||o;return n?a.createElement(v,l(l({ref:t},u),{},{components:n})):a.createElement(v,l({ref:t},u))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=p;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var s=2;s0,s=!!(t||n||o);return i||s?a.createElement("footer",{className:(0,u.Z)(y.k.docs.docFooter,"docusaurus-mt-lg")},i&&a.createElement(D,{tags:l}),s&&a.createElement(R,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r})):null}var F=n(4639),q=n(107),G=["parentIndex"];function Y(e){var t=e.map((function(e){return Object.assign({},e,{parentIndex:-1,children:[]})})),n=Array(7).fill(-1);t.forEach((function(e,t){var a=n.slice(2,e.level);e.parentIndex=Math.max.apply(Math,a),n[e.level]=t}));var a=[];return t.forEach((function(e){var n=e.parentIndex,r=(0,H.Z)(e,G);n>=0?t[n].children.push(r):a.push(r)})),a}function $(e){var t=e.toc,n=e.minHeadingLevel,a=e.maxHeadingLevel;return t.flatMap((function(e){var t=$({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[Object.assign({},e,{children:t})]:t}))}function J(e){var t=e.getBoundingClientRect();return t.top===t.bottom?J(e.parentNode):t}function Q(e,t){var n,a,r=t.anchorTopOffset,o=e.find((function(e){return J(e).top>=r}));return o?function(e){return e.top>0&&e.bottom0})).map((function(e){return[e-1,[i]]}));return{lineClassNames:Object.fromEntries(c),code:n}}if(void 0===a)return{lineClassNames:{},code:n};for(var s=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return He(["js","jsBlock"],t);case"jsx":case"tsx":return He(["js","jsBlock","jsx"],t);case"html":return He(["js","jsBlock","html"],t);case"python":case"py":case"bash":return He(["bash"],t);case"markdown":case"md":return He(["html","jsx","bash"],t);default:return He(Object.keys(Oe),t)}}(a,r),u=n.split("\n"),d=Object.fromEntries(r.map((function(e){return[e.className,{start:0,range:""}]}))),m=Object.fromEntries(r.filter((function(e){return e.line})).map((function(e){var t=e.className;return[e.line,t]}))),p=Object.fromEntries(r.filter((function(e){return e.block})).map((function(e){var t=e.className;return[e.block.start,t]}))),v=Object.fromEntries(r.filter((function(e){return e.block})).map((function(e){var t=e.className;return[e.block.end,t]}))),f=0;f0&&e[n-1]===t?e:e.concat(t)},Ye=function(e,t){var n=e.plain,a=Object.create(null),r=e.styles.reduce((function(e,n){var a=n.languages,r=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=We({},e[t],r);e[t]=n})),e}),a);return r.root=n,r.plain=We({},n,{backgroundColor:null}),r};function $e(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Je=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Re(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?Ye(e.theme,e.language):void 0;return t.themeDict=n})),Re(this,"getLineProps",(function(e){var n=e.key,a=e.className,r=e.style,o=We({},$e(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(o.style=l.plain),void 0!==r&&(o.style=void 0!==o.style?We({},o.style,r):r),void 0!==n&&(o.key=n),a&&(o.className+=" "+a),o})),Re(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,r=n.length,o=t.getThemeDict(t.props);if(void 0!==o){if(1===r&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===r&&!a)return o[n[0]];var l=a?{display:"inline-block"}:{},i=n.map((function(e){return o[e]}));return Object.assign.apply(Object,[l].concat(i))}})),Re(this,"getTokenProps",(function(e){var n=e.key,a=e.className,r=e.style,o=e.token,l=We({},$e(e,["key","className","style","token"]),{className:"token "+o.types.join(" "),children:o.content,style:t.getStyleForToken(o),key:void 0});return void 0!==r&&(l.style=void 0!==l.style?We({},l.style,r):r),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Re(this,"tokenize",(function(e,t,n,a){var r={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",r);var o=r.tokens=e.tokenize(r.code,r.grammar,r.language);return e.hooks.run("after-tokenize",r),o}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,r=e.children,o=this.getThemeDict(this.props),l=t.languages[n];return r({tokens:function(e){for(var t=[[]],n=[e],a=[0],r=[e.length],o=0,l=0,i=[],c=[i];l>-1;){for(;(o=a[l]++)0?u:["plain"],s=d):(u=Ge(u,d.type),d.alias&&(u=Ge(u,d.alias)),s=d.content),"string"==typeof s){var m=s.split(Fe),p=m.length;i.push({types:u,content:m[0]});for(var v=1;v0&&(i=l.getRangeAt(0)),a.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;var c=!1;try{c=document.execCommand("copy")}catch(s){}r.remove(),i&&(l.removeAllRanges(),l.addRange(i)),o&&o.focus()}(t),l(!0),i.current=window.setTimeout((function(){l(!1)}),1e3)}),[t]);return(0,a.useEffect)((function(){return function(){return window.clearTimeout(i.current)}}),[]),a.createElement("button",{type:"button","aria-label":o?(0,p.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.Z)("clean-btn",n,et.copyButton,o&&et.copyButtonCopied),onClick:c},a.createElement("span",{className:et.copyButtonIcons,"aria-hidden":"true"},a.createElement("svg",{className:et.copyButtonIcon,viewBox:"0 0 24 24"},a.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"})),a.createElement("svg",{className:et.copyButtonSuccessIcon,viewBox:"0 0 24 24"},a.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))))}var nt={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function at(e){var t=e.className,n=e.onClick,r=e.isEnabled,o=(0,p.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,u.Z)("clean-btn",t,r&&nt.wordWrapButtonEnabled),"aria-label":o,title:o},a.createElement("svg",{className:nt.wordWrapButtonIcon,viewBox:"0 0 24 24","aria-hidden":"true"},a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})))}function rt(e){var t,n,r,o,l,i,c,s,d,p,v,f=e.children,h=e.className,g=void 0===h?"":h,b=e.metastring,E=e.title,y=e.showLineNumbers,k=e.language,N=(0,q.L)().prism,C=N.defaultLanguage,L=N.magicComments,T=null!=(t=null!=k?k:null==(n=g.split(" ").find((function(e){return e.startsWith("language-")})))?void 0:n.replace(/language-/,""))?t:C,Z=Te(),w=(r=(0,a.useState)(!1),o=r[0],l=r[1],i=(0,a.useState)(!1),c=i[0],s=i[1],d=(0,a.useRef)(null),p=(0,a.useCallback)((function(){var e=d.current.querySelector("code");o?e.removeAttribute("style"):(e.style.whiteSpace="pre-wrap",e.style.overflowWrap="anywhere"),l((function(e){return!e}))}),[d,o]),v=(0,a.useCallback)((function(){var e=d.current,t=e.scrollWidth>e.clientWidth||d.current.querySelector("code").hasAttribute("style");s(t)}),[d]),ze(d,v),(0,a.useEffect)((function(){v()}),[o,v]),(0,a.useEffect)((function(){return window.addEventListener("resize",v,{passive:!0}),function(){window.removeEventListener("resize",v)}}),[v]),{codeBlockRef:d,isEnabled:o,isCodeScrollable:c,toggle:p}),_=function(e){var t,n;return null!=(t=null==e||null==(n=e.match(xe))?void 0:n.groups.title)?t:""}(b)||E,x=je(f,{metastring:b,language:T,magicComments:L}),B=x.lineClassNames,O=x.code,H=null!=y?y:function(e){return Boolean(null==e?void 0:e.includes("showLineNumbers"))}(b);return a.createElement(Se,{as:"div",className:(0,u.Z)(g,T&&!g.includes("language-"+T)&&"language-"+T)},_&&a.createElement("div",{className:Me.codeBlockTitle},_),a.createElement("div",{className:Me.codeBlockContent},a.createElement(Qe,(0,m.Z)({},De,{theme:Z,code:O,language:null!=T?T:"text"}),(function(e){var t=e.className,n=e.tokens,r=e.getLineProps,o=e.getTokenProps;return a.createElement("pre",{tabIndex:0,ref:w.codeBlockRef,className:(0,u.Z)(t,Me.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,u.Z)(Me.codeBlockLines,H&&Me.codeBlockLinesWithNumbering)},n.map((function(e,t){return a.createElement(Ke,{key:t,line:e,getLineProps:r,getTokenProps:o,classNames:B[t],showLineNumbers:H})}))))})),a.createElement("div",{className:Me.buttonGroup},(w.isEnabled||w.isCodeScrollable)&&a.createElement(at,{className:Me.codeButton,onClick:function(){return w.toggle()},isEnabled:w.isEnabled}),a.createElement(tt,{className:Me.codeButton,code:O}))))}var ot=["children"];function lt(e){var t=e.children,n=(0,H.Z)(e,ot),r=(0,Ce.Z)(),o=function(e){return a.Children.toArray(e).some((function(e){return(0,a.isValidElement)(e)}))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?rt:Pe;return a.createElement(l,(0,m.Z)({key:String(r)},n),o)}var it={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"},ct=["summary","children"];function st(e){return!!e&&("SUMMARY"===e.tagName||st(e.parentElement))}function ut(e,t){return!!e&&(e===t||ut(e.parentElement,t))}function dt(e){var t=e.summary,n=e.children,r=(0,H.Z)(e,ct),o=(0,Ce.Z)(),l=(0,a.useRef)(null),i=(0,F.u)({initialState:!r.open}),c=i.collapsed,s=i.setCollapsed,d=(0,a.useState)(r.open),p=d[0],v=d[1];return a.createElement("details",(0,m.Z)({},r,{ref:l,open:p,"data-collapsed":c,className:(0,u.Z)(it.details,o&&it.isBrowser,r.className),onMouseDown:function(e){st(e.target)&&e.detail>1&&e.preventDefault()},onClick:function(e){e.stopPropagation();var t=e.target;st(t)&&ut(t,l.current)&&(e.preventDefault(),c?(s(!1),v(!0)):s(!0))}}),null!=t?t:a.createElement("summary",null,"Details"),a.createElement(F.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:function(e){s(e),v(!e)}},a.createElement("div",{className:it.collapsibleContent},n)))}var mt={details:"details_b_Ee"},pt="alert alert--info";function vt(e){var t=Object.assign({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e));return a.createElement(dt,(0,m.Z)({},t,{className:(0,u.Z)(pt,mt.details,t.className)}))}function ft(e){return a.createElement(Ee,e)}var ht={containsTaskList:"containsTaskList_mC6p"};var gt={img:"img_ev3q"};var bt={admonition:"admonition_LlT9",admonitionHeading:"admonitionHeading_tbUL",admonitionIcon:"admonitionIcon_kALy",admonitionContent:"admonitionContent_S0QG"};var Et={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(p.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(p.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(p.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},yt={secondary:"note",important:"info",success:"tip",warning:"danger"};function kt(e){var t,n=function(e){var t=a.Children.toArray(e),n=t.find((function(e){var t;return a.isValidElement(e)&&"mdxAdmonitionTitle"===(null==(t=e.props)?void 0:t.mdxType)})),r=a.createElement(a.Fragment,null,t.filter((function(e){return e!==n})));return{mdxAdmonitionTitle:n,rest:r}}(e.children),r=n.mdxAdmonitionTitle,o=n.rest;return Object.assign({},e,{title:null!=(t=e.title)?t:r,children:o})}var Nt={head:function(e){var t=a.Children.map(e.children,(function(e){return a.isValidElement(e)?function(e){var t;if(null!=(t=e.props)&&t.mdxType&&e.props.originalType){var n=e.props,r=(n.mdxType,n.originalType,(0,H.Z)(n,Ne));return a.createElement(e.props.originalType,r)}return e}(e):e}));return a.createElement(ke.Z,e,t)},code:function(e){var t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((function(e){var n;return"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(null==(n=e.props)?void 0:n.mdxType)}))?a.createElement("code",e):a.createElement(lt,e)},a:function(e){return a.createElement(v.Z,e)},pre:function(e){var t;return a.createElement(lt,(0,a.isValidElement)(e.children)&&"code"===(null==(t=e.children.props)?void 0:t.originalType)?e.children.props:Object.assign({},e))},details:function(e){var t=a.Children.toArray(e.children),n=t.find((function(e){var t;return a.isValidElement(e)&&"summary"===(null==(t=e.props)?void 0:t.mdxType)})),r=a.createElement(a.Fragment,null,t.filter((function(e){return e!==n})));return a.createElement(vt,(0,m.Z)({},e,{summary:n}),r)},ul:function(e){return a.createElement("ul",(0,m.Z)({},e,{className:(t=e.className,(0,u.Z)(t,(null==t?void 0:t.includes("contains-task-list"))&&ht.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,m.Z)({loading:"lazy"},e,{className:(t=e.className,(0,u.Z)(t,gt.img))}));var t},h1:function(e){return a.createElement(ft,(0,m.Z)({as:"h1"},e))},h2:function(e){return a.createElement(ft,(0,m.Z)({as:"h2"},e))},h3:function(e){return a.createElement(ft,(0,m.Z)({as:"h3"},e))},h4:function(e){return a.createElement(ft,(0,m.Z)({as:"h4"},e))},h5:function(e){return a.createElement(ft,(0,m.Z)({as:"h5"},e))},h6:function(e){return a.createElement(ft,(0,m.Z)({as:"h6"},e))},admonition:function(e){var t=kt(e),n=t.children,r=t.type,o=t.title,l=t.icon,i=function(e){var t,n=null!=(t=yt[e])?t:e,a=Et[n];return a||(console.warn('No admonition config found for admonition type "'+n+'". Using Info as fallback.'),Et.info)}(r),c=null!=o?o:i.label,s=i.iconComponent,d=null!=l?l:a.createElement(s,null);return a.createElement("div",{className:(0,u.Z)(y.k.common.admonition,y.k.common.admonitionType(e.type),"alert","alert--"+i.infimaClassName,bt.admonition)},a.createElement("div",{className:bt.admonitionHeading},a.createElement("span",{className:bt.admonitionIcon},d),c),a.createElement("div",{className:bt.admonitionContent},n))},mermaid:function(){return null}};function Ct(e){var t=e.children;return a.createElement(ye.Zo,{components:Nt},t)}function Lt(e){var t,n,r,o,l=e.children,i=(t=c(),n=t.metadata,r=t.frontMatter,o=t.contentTitle,r.hide_title||void 0!==o?null:n.title);return a.createElement("div",{className:(0,u.Z)(y.k.docs.docMarkdown,"markdown")},i&&a.createElement("header",null,a.createElement(Ee,{as:"h1"},i)),a.createElement(Ct,null,l))}var Tt=n(5019),Zt=n(9003),wt=n(9524);function _t(e){return a.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}var xt={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function Bt(){var e=(0,wt.Z)("/");return a.createElement("li",{className:"breadcrumbs__item"},a.createElement(v.Z,{"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},a.createElement(_t,{className:xt.breadcrumbHomeIcon})))}var Ot={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function Ht(e){var t=e.children,n=e.href,r="breadcrumbs__link";return e.isLast?a.createElement("span",{className:r,itemProp:"name"},t):n?a.createElement(v.Z,{className:r,href:n,itemProp:"item"},a.createElement("span",{itemProp:"name"},t)):a.createElement("span",{className:r},t)}function jt(e){var t=e.children,n=e.active,r=e.index,o=e.addMicrodata;return a.createElement("li",(0,m.Z)({},o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,a.createElement("meta",{itemProp:"position",content:String(r+1)}))}function At(){var e=(0,Tt.s1)(),t=(0,Zt.Ns)();return e?a.createElement("nav",{className:(0,u.Z)(y.k.docs.docBreadcrumbs,Ot.breadcrumbsContainer),"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},a.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&a.createElement(Bt,null),e.map((function(t,n){var r=n===e.length-1;return a.createElement(jt,{key:n,active:r,index:n,addMicrodata:!!t.href},a.createElement(Ht,{href:t.href,isLast:r},t.label))})))):null}var It={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function St(e){var t,n,r,o,l,i,s=e.children,m=(t=c(),n=t.frontMatter,r=t.toc,o=(0,d.i)(),l=n.hide_table_of_contents,i=!l&&r.length>0,{hidden:l,mobile:i?a.createElement(ue,null):void 0,desktop:!i||"desktop"!==o&&"ssr"!==o?void 0:a.createElement(he,null)});return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,u.Z)("col",!m.hidden&&It.docItemCol)},a.createElement(w,null),a.createElement("div",{className:It.docItemContainer},a.createElement("article",null,a.createElement(At,null),a.createElement(_,null),m.mobile,a.createElement(Lt,null,s),a.createElement(W,null)),a.createElement(g,null))),m.desktop&&a.createElement("div",{className:"col col--3"},m.desktop))}function Mt(e){var t="docs-doc-id-"+e.content.metadata.unversionedId,n=e.content;return a.createElement(i,{content:e.content},a.createElement(r.FG,{className:t},a.createElement(s,null),a.createElement(St,null,a.createElement(n,null))))}},8801:function(e,t,n){"use strict";n.d(t,{E:function(){return i},q:function(){return l}});var a=n(7294),r=n(8755),o=a.createContext(null);function l(e){var t=e.children,n=e.version;return a.createElement(o.Provider,{value:n},t)}function i(){var e=(0,a.useContext)(o);if(null===e)throw new r.i6("DocsVersionProvider");return e}},7594:function(e,t){function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,r,o]=t;if(a&&o){a=parseInt(a),o=parseInt(o);const e=a=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",s={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,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,f=d["".concat(u,".").concat(m)]||d[m]||s[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;cgetCurrentUVIndex($lat, $lon);\n")),(0,o.kt)("h3",{id:"example"},"Example"),(0,o.kt)("p",null,"Get the current UV index in Berlin."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},'$uvIndex = $owm->getCurrentUVIndex(52.520008, 13.404954);\necho "Current UV index: $uvIndex->uvIndex";\n')),(0,o.kt)("h2",{id:"forecast-uv-index"},"Forecast UV index"),(0,o.kt)("p",null,"You can retrieve a UV index forecast for up to 8 days. The return value is an\narray of ",(0,o.kt)("inlineCode",{parentName:"p"},"UVIndex")," objects."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$uvForecast = $owm->getForecastUVIndex($lat, $lon, $cnt = 8)\n")),(0,o.kt)("h3",{id:"example-1"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$forecast = $owm->getForecastUVIndex(52.520008, 13.404954);\nforeach ($forecast as $day) {\n echo \"{$day->time->format('r')} will have an uv index of: $day->uvIndex\";\n}\n")),(0,o.kt)("h2",{id:"historic-uv-index"},"Historic UV index"),(0,o.kt)("p",null,"You can retrieve daily historic UV index data starting in June 2017."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$history = $owm->getHistoricUVIndex($lat, $lon, $from, $to);\n")),(0,o.kt)("h3",{id:"example-2"},"Example"),(0,o.kt)("p",null,"Retrieve one month of four month old historic UV data of Berlin."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$history = $owm->getHistoricUVIndex(52.520008, 13.404954,\n new DateTime('-4month'),\n new DateTime('-3month'));\nforeach ($history as $day) {\n echo \"{$day->time->format('r')} had an uv index of: $day->uvIndex\";\n}\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1be78505.8e41a826.js b/assets/js/1be78505.8e41a826.js new file mode 100644 index 0000000..a56ec4d --- /dev/null +++ b/assets/js/1be78505.8e41a826.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[514,248],{1299:function(e,t,n){n.r(t),n.d(t,{default:function(){return ge}});var a=n(7294),r=n(6010),l=n(5463),o=n(3702),i=n(246),c=n(5019),d=n(8801),s=n(4432),u=n(2269),m=n(7325),b=n(2957),p=n(3266);var v={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function h(){var e=function(e){var t=e.threshold,n=(0,a.useState)(!1),r=n[0],l=n[1],o=(0,a.useRef)(!1),i=(0,b.Ct)(),c=i.startScroll,d=i.cancelScroll;return(0,b.RF)((function(e,n){var a=e.scrollY,r=null==n?void 0:n.scrollY;r&&(o.current?o.current=!1:a>=r?(d(),l(!1)):a=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=s(r),f=a,d=l["".concat(c,".").concat(f)]||l[f]||m[f]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=f;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[l]="string"==typeof e?e:a,p[1]=i;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=a.createContext({}),u=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=o,f=c["".concat(p,".").concat(m)]||c[m]||d[m]||r;return n?a.createElement(f,i(i({ref:t},s),{},{components:n})):a.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:o,i[1]=l;for(var u=2;ugetAirPollution($type, $lat, $lng, $date = "current");\n')),(0,r.kt)("p",null,"The return value depends on the ",(0,r.kt)("inlineCode",{parentName:"p"},"$type")," and is discussed in the next sections."),(0,r.kt)("h2",{id:"carbon-monoxide-co"},"Carbon Monoxide (CO)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},'$co = $owm->getAirPollution("CO", "52", "13");\nif ($co === null) {\n // No data available\n} else {\n foreach ($co->values as $data) {\n echo $data["value"];\n echo $data["value"]->getPrecision();\n echo $data["pressure"];\n }\n}\n')),(0,r.kt)("h2",{id:"ozone-o3"},"Ozone (O3)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},'$o3 = $owm->getAirPollution("O3", "52", "13");\nif ($o3 === null) {\n // No data available\n} else {\n echo $o3->value;\n}\n')),(0,r.kt)("h2",{id:"nitrogen-dioxide-no2"},"Nitrogen Dioxide (NO2)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},'$no2 = $owm->getAirPollution("NO2", "52", "13");\nif ($no2 === null) {\n // No data available\n} else {\n echo $no2->value;\n echo $no2->valueStratosphere;\n echo $no2->valueTroposphere;\n}\n')),(0,r.kt)("h2",{id:"sulfor-dioxide-so2"},"Sulfor Dioxide (SO2)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},'$so2 = $owm->getAirPollution("SO2", "52", "13");\nif ($so2 === null) {\n // No data available\n} else {\n foreach ($so2->values as $data) {\n echo $data["value"];\n echo $data["value"]->getPrecision();\n echo $data["pressure"];\n }\n}\n')))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/643a1cfb.0e118a76.js b/assets/js/643a1cfb.0e118a76.js new file mode 100644 index 0000000..8499421 --- /dev/null +++ b/assets/js/643a1cfb.0e118a76.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[911],{4137:function(t,e,a){a.d(e,{Zo:function(){return m},kt:function(){return c}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var d=n.createContext({}),p=function(t){var e=n.useContext(d),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},m=function(t){var e=p(t.components);return n.createElement(d.Provider,{value:e},t.children)},u="mdxType",k={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,d=t.parentName,m=o(t,["components","mdxType","originalType","parentName"]),u=p(a),s=r,c=u["".concat(d,".").concat(s)]||u[s]||k[s]||l;return a?n.createElement(c,i(i({ref:e},m),{},{components:a})):n.createElement(c,i({ref:e},m))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=s;var o={};for(var d in e)hasOwnProperty.call(e,d)&&(o[d]=e[d]);o.originalType=t,o[u]="string"==typeof t?t:r,i[1]=o;for(var p=2;p$query parameter",id:"query-parameter",level:2},{value:"by city name",id:"by-city-name",level:3},{value:"by city id",id:"by-city-id",level:3},{value:"by zip code",id:"by-zip-code",level:3},{value:"by coordinates",id:"by-coordinates",level:3},{value:"$forecasts object",id:"forecasts-object",level:2},{value:"$forecast object",id:"forecast-object",level:3},{value:"only for 5-day/3-hourly forecasts",id:"only-for-5-day3-hourly-forecasts",level:3},{value:"only for 16-day/hourly forecasts",id:"only-for-16-dayhourly-forecasts",level:3}],k={toc:u},s="wrapper";function c(t){var e=t.components,a=(0,r.Z)(t,i);return(0,l.kt)(s,(0,n.Z)({},k,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"This API allows you to retrieve 16-day/daily and 5-day/3-hourly weather forecasts."),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Corresponding OpenWeatherMap Documentation:"),(0,l.kt)("ul",{parentName:"blockquote"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://openweathermap.org/forecast5"},"5-day/3-hourly Forecasts")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://openweathermap.org/forecast16"},"16-day/daily Forecasts")))),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"$owm->getWeatherForecast()")," method takes the following parameters:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Default"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$query")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"mixed")),(0,l.kt)("td",{parentName:"tr",align:null},"--"),(0,l.kt)("td",{parentName:"tr",align:null},"See below")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$units")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},'"imperial"'),"|",(0,l.kt)("inlineCode",{parentName:"td"},'"metric"')),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},'"imperial"')),(0,l.kt)("td",{parentName:"tr",align:null},"Units to use")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$lang")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"en")),(0,l.kt)("td",{parentName:"tr",align:null},"One of the languages listed at the very bottom of ",(0,l.kt)("a",{parentName:"td",href:"https://openweathermap.org/forecast16#multi"},"the official documentation"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$appid")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"''")),(0,l.kt)("td",{parentName:"tr",align:null},"Deprecated, always set to ",(0,l.kt)("inlineCode",{parentName:"td"},"''"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$days")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"int")," (1 - 16)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"1")),(0,l.kt)("td",{parentName:"tr",align:null},"Number of days to retrieve the forecast for. If ",(0,l.kt)("inlineCode",{parentName:"td"},"$days")," is between 1 and 5, the 5-day/3-hourly forecast API is used. If ",(0,l.kt)("inlineCode",{parentName:"td"},"$days")," is between 6 and 16, the 16-day/daily forecast API is used.")))),(0,l.kt)("p",null,"You can use ",(0,l.kt)("inlineCode",{parentName:"p"},"->getDailyWeatherForecast()")," if instead if you want to retrieve a daily forecast even when a 3-horuly forecast is available."),(0,l.kt)("h2",{id:"query-parameter"},(0,l.kt)("inlineCode",{parentName:"h2"},"$query")," parameter"),(0,l.kt)("p",null,"The first parameter determines the location to get weather data from.\nSeveral possible approaches are possible:"),(0,l.kt)("h3",{id:"by-city-name"},"by city name"),(0,l.kt)("p",null,"Specifying the country is optional."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$forecasts = $owm->getWeatherForecast('Berlin,DE', $units, $lang, '', $days);\n")),(0,l.kt)("h3",{id:"by-city-id"},"by city id"),(0,l.kt)("p",null,"One city id:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$forecasts = $owm->getWeatherForecast(2172797, $units, $lang, '', $days);\n")),(0,l.kt)("h3",{id:"by-zip-code"},"by zip code"),(0,l.kt)("p",null,"Specifying the country is optional."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"// Hyderabad, India\n$forecasts = $owm->getWeatherForecast('zip:500001,IN', $units, $lang, '', $days);\n")),(0,l.kt)("h3",{id:"by-coordinates"},"by coordinates"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$forecasts = $owm->getWeatherForecast(['lat' => 77.73038, 'lon' => 41.89604],\n $units, $lang, '', $days);\n")),(0,l.kt)("h2",{id:"forecasts-object"},(0,l.kt)("inlineCode",{parentName:"h2"},"$forecasts")," object"),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"$forecasts")," is an instance of ",(0,l.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\WeatherForecast"),".\nIt provides the following data:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"lastUpdate")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\\u1e10ateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"When the data was last updated")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->id")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"int")),(0,l.kt)("td",{parentName:"tr",align:null},"Internal city id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->name")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"Name of the city")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->country")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"City country code")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->timezone")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeZone"),"|",(0,l.kt)("inlineCode",{parentName:"td"},"null")),(0,l.kt)("td",{parentName:"tr",align:null},"City timezone")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->lon")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"float")),(0,l.kt)("td",{parentName:"tr",align:null},"City longitude")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->lat")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"float")),(0,l.kt)("td",{parentName:"tr",align:null},"City latitude")))),(0,l.kt)("p",null,"To retrieve the forecasts, iterate over the object:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"foreach ($forecasts as $forecast) {\n // Do something\n}\n")),(0,l.kt)("h3",{id:"forecast-object"},(0,l.kt)("inlineCode",{parentName:"h3"},"$forecast")," object"),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"$forecast")," is an instance of ",(0,l.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\Forecast")," that extends the ",(0,l.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\CurrentWeather")," object."),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"time->day")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"The day of the forecast")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"time->from")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"The exact start time of the forecast. For 16-day/daily forecasts, this corresponds to ",(0,l.kt)("inlineCode",{parentName:"td"},"time->day"),". For 5-day/3-hourly forecasts, it corresponds to the start of the 3-hour window.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"time->to")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"The exact end time of the forecast. For 16-day/daily forecasts, this corresponds to ",(0,l.kt)("inlineCode",{parentName:"td"},"time->day")," at ",(0,l.kt)("inlineCode",{parentName:"td"},"23:59:59"),". For 5-day/3-hourly forecasts, it corresponds to the end of the 3-hour window.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"...")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"...")),(0,l.kt)("td",{parentName:"tr",align:null},"All other properties from the ",(0,l.kt)("inlineCode",{parentName:"td"},"CurrentWeather")," object, as described ",(0,l.kt)("a",{parentName:"td",href:"/OpenWeatherMap-PHP-API/docs/apis/current-weather#weather-object"},"here"),".")))),(0,l.kt)("h3",{id:"only-for-5-day3-hourly-forecasts"},"only for 5-day/3-hourly forecasts"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Note: This should be named ",(0,l.kt)("inlineCode",{parentName:"td"},"temperature->avg")," and is only named ",(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")," for backwards compatibility! Returns the average temperature for the given location (i.e, a big city might have multiple temperature measurement stations)")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->min")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum temperature for the given locaiton")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->max")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum temperature for the given locaiton")))),(0,l.kt)("h3",{id:"only-for-16-dayhourly-forecasts"},"only for 16-day/hourly forecasts"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->morning")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Temperature at morning")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Temperature at day")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->evening")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Temperature at evening")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->night")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Temperature at night")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->min")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum temperature at day")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->max")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum temperature at day")))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6476eba6.c3360b8e.js b/assets/js/6476eba6.c3360b8e.js new file mode 100644 index 0000000..0dc63fb --- /dev/null +++ b/assets/js/6476eba6.c3360b8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[827],{4137:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});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 o(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 p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=a.createContext({}),l=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},s=function(e){var t=l(e.components);return a.createElement(i.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(n),m=r,d=u["".concat(i,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(d,p(p({ref:t},s),{},{components:n})):a.createElement(d,p({ref:t},s))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,p=new Array(o);p[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:r,p[1]=c;for(var l=2;lUnit objects",id:"unit-objects",level:2},{value:"Caching requests",id:"caching-requests",level:2},{value:"Exception handling",id:"exception-handling",level:2}],h={toc:u},m="wrapper";function d(e){var t=e.components,n=(0,r.Z)(e,p);return(0,o.kt)(m,(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"All APIs can be accessed through the ",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap")," object.\nTo construct this object, you need to supply your API key, the PSR-18-compatible\nHTTP client and the PSR-17-compatible HTTP request factory:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"use Cmfcmf\\OpenWeatherMap;\n\n$owm = new OpenWeatherMap('YOUR-API-KEY', $httpClient, $httpRequestFactory);\n")),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},(0,o.kt)("strong",{parentName:"p"},"Note:")," From now on, we will refer to the instance of ",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap")," as ",(0,o.kt)("inlineCode",{parentName:"p"},"$owm"),".")),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"getWeather('Berlin', 'metric', 'de');\n} catch(OWMException $e) {\n echo 'OpenWeatherMap exception: ' . $e->getMessage() . ' (Code ' . $e->getCode() . ').';\n} catch(\\Exception $e) {\n echo 'General exception: ' . $e->getMessage() . ' (Code ' . $e->getCode() . ').';\n}\n\necho $weather->temperature;\n")),(0,o.kt)("h2",{id:"unit-objects"},(0,o.kt)("inlineCode",{parentName:"h2"},"Unit")," objects"),(0,o.kt)("p",null,"Most values like temperature, precipitation, etc., are returned as instances of the\n",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\Util\\Unit")," class. These objects provide you with\nthe value (e.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"26.9"),"),\nthe unit (e.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"\xb0C"),"),\nand sometimes a description (e.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"heavy rain"),").\nTo make this clearer, let's look at a concrete example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},'$weather = $owm->getWeather(\'Berlin\', \'metric\');\n// @var Cmfcmf\\OpenWeatherMap\\Util\\Unit $temperature\n$temperature = $weather->temperature->now;\n\n$temperature->getValue(); // 26.9\n$temperature->getUnit(); // "\xb0C"\n$temperature->getDescription(); // ""\n$temperature->getFormatted(); // "26.9 \xb0C"\n$temperature->__toString(); // "26.9 \xb0C"\n')),(0,o.kt)("h2",{id:"caching-requests"},"Caching requests"),(0,o.kt)("p",null,"You can automatically cache requests by supplying a ",(0,o.kt)("a",{parentName:"p",href:"https://www.php-fig.org/psr/psr-6/"},"PSR-6-compatible"),"\ncache as the fourth constructor parameter and the time to live as the fifth parameter:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php",metastring:"{7}","{7}":!0},"use Cmfcmf\\OpenWeatherMap;\n\n// Cache time in seconds, defaults to 600 = 10 minutes.\n$ttl = 600;\n\n$owm = new OpenWeatherMap('YOUR-API-KEY', $httpClient, $httpRequestFactory,\n $cache, $ttl);\n")),(0,o.kt)("p",null,"You can check whether the last request was cached by calling ",(0,o.kt)("inlineCode",{parentName:"p"},"->wasCached()"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php",metastring:"{3}","{3}":!0},'$owm->getRawWeatherData(\'Berlin\');\n\nif ($owm->wasCached()) {\n echo "last request was cached";\n} else {\n echo "last request was not cached";\n}\n')),(0,o.kt)("h2",{id:"exception-handling"},"Exception handling"),(0,o.kt)("p",null,"Make sure to handle exceptions appropriately.\nWhenever the OpenWeatherMap API returns an exception, it is converted into an instance of\n",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\Exception"),".\nAs a special case, the API will throw a ",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\NotFoundException")," if the city/location/coordinates you are querying cannot be found. This exception inherits from ",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\Exception"),"."),(0,o.kt)("p",null,"If anything else goes wrong, an exception inheriting from ",(0,o.kt)("inlineCode",{parentName:"p"},"\\Exception")," is thrown."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php",metastring:"{5,7}","{5,7}":!0},"use Cmfcmf\\OpenWeatherMap\\Exception as OWMException;\nuse Cmfcmf\\OpenWeatherMap\\NotFoundException as OWMNotFoundException;\n\ntry {\n $weather = $owm->getWeather('Berlin');\n} catch (OWMNotFoundException $e) {\n // TODO: Handle \"city was not found\" exception\n // You can opt to skip the handler for `OWMNotFoundException`, because it extends `OWMException`.\n} catch (OWMException $e) {\n // TODO: Handle API exception\n} catch (\\Exception $e) {\n // TODO: Handle general exception\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.2153a8f6.js b/assets/js/935f2afb.2153a8f6.js new file mode 100644 index 0000000..fb40e85 --- /dev/null +++ b/assets/js/935f2afb.2153a8f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).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":{"someSidebar":[{"type":"link","label":"Getting Started","href":"/OpenWeatherMap-PHP-API/docs/getting-started","docId":"getting-started"},{"type":"link","label":"API Key","href":"/OpenWeatherMap-PHP-API/docs/api-key","docId":"api-key"},{"type":"link","label":"Usage","href":"/OpenWeatherMap-PHP-API/docs/usage","docId":"usage"},{"type":"category","label":"APIs","items":[{"type":"link","label":"Current Weather","href":"/OpenWeatherMap-PHP-API/docs/apis/current-weather","docId":"apis/current-weather"},{"type":"link","label":"Weather Forecast","href":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast","docId":"apis/weather-forecast"},{"type":"link","label":"Air Pollution","href":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution","docId":"apis/air-pollution"},{"type":"link","label":"Ultraviolet Index","href":"/OpenWeatherMap-PHP-API/docs/apis/uv-index","docId":"apis/uv-index"}],"collapsed":false,"collapsible":false}]},"docs":{"api-key":{"id":"api-key","title":"API Key","description":"All requests require a free API key (sometimes called \\"APPID\\") from OpenWeaterMap.","sidebar":"someSidebar"},"apis/air-pollution":{"id":"apis/air-pollution","title":"Air Pollution API","description":"This API allows you to retrieve the current, forecast and historic ultraviolet index (UV index).","sidebar":"someSidebar"},"apis/current-weather":{"id":"apis/current-weather","title":"Current Weather API","description":"This API allows you to retrieve the current weather data.","sidebar":"someSidebar"},"apis/uv-index":{"id":"apis/uv-index","title":"Ultraviolet Index API","description":"This API allows you to retrieve the current, forecast and historic ultraviolet index (UV index).","sidebar":"someSidebar"},"apis/weather-forecast":{"id":"apis/weather-forecast","title":"Weather Forecast API","description":"This API allows you to retrieve 16-day/daily and 5-day/3-hourly weather forecasts.","sidebar":"someSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"OpenWeatherMap PHP API is a PHP client for weather APIs from OpenWeatherMap.org.","sidebar":"someSidebar"},"usage":{"id":"usage","title":"Usage","description":"All APIs can be accessed through the Cmfcmf\\\\OpenWeatherMap object.","sidebar":"someSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/bc0739f3.f79734fb.js b/assets/js/bc0739f3.f79734fb.js new file mode 100644 index 0000000..bb4af3d --- /dev/null +++ b/assets/js/bc0739f3.f79734fb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[100],{5745:function(s){s.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.4a28788c.js b/assets/js/c4f5d8e4.4a28788c.js new file mode 100644 index 0000000..525bc83 --- /dev/null +++ b/assets/js/c4f5d8e4.4a28788c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[195],{9660:function(e,t,a){a.r(t),a.d(t,{default:function(){return h}});var r=a(7462),n=a(7294),l=a(6010),s=a(2269),c=a(3699),o=a(9962),i=a(9524),m={heroBanner:"heroBanner_UJJx",buttons:"buttons_pzbO",features:"features_keug",featureImage:"featureImage_yA8i"},u=[{title:n.createElement(n.Fragment,null,"Supports most free APIs"),description:n.createElement(n.Fragment,null,n.createElement("p",null,"This project comes with support for five of the most popular free APIs:"),n.createElement("ul",null,n.createElement("li",null,"Current Weather Data"),n.createElement("li",null,"16-day/daily Forecast Data"),n.createElement("li",null,"5-day/3-hourly Forecast Data"),n.createElement("li",null,"Air Pollution (CO, O3, SO2, NO2) Data"),n.createElement("li",null,"Ultraviolet Index Data")))},{title:n.createElement(n.Fragment,null,"Easy to Use"),description:n.createElement("p",null,"The OpenWeatherMap APIs are poorly documented and oftentimes not easy to use. This project provides the necessary abstractions to make working with the API feel like a breeze.")},{title:n.createElement(n.Fragment,null,"Powered by modern PHP"),description:n.createElement("p",null,"Since version 3.x, this project works with PHP 7.x. It uses ",n.createElement("a",{href:"https://www.php-fig.org/psr/psr-17/"},"PSR-17")," and ",n.createElement("a",{href:"https://www.php-fig.org/psr/psr-18/"},"PSR-18")," for HTTP requests, as well as ",n.createElement("a",{href:"https://www.php-fig.org/psr/psr-6/"},"PSR-6")," for caching.")}];function p(e){var t=e.imageUrl,a=e.title,r=e.description,s=(0,i.Z)(t);return n.createElement("div",{className:(0,l.Z)("col col--4",m.feature)},s&&n.createElement("div",{className:"text--center"},n.createElement("img",{className:m.featureImage,src:s,alt:a})),n.createElement("h3",null,a),r)}var h=function(){var e=(0,o.Z)().siteConfig,t=void 0===e?{}:e;return n.createElement(s.Z,{title:t.title,description:t.tagline},n.createElement("header",{className:(0,l.Z)("hero hero--primary",m.heroBanner)},n.createElement("div",{className:"container"},n.createElement("h1",{className:"hero__title"},t.title),n.createElement("p",{className:"hero__subtitle"},t.tagline),n.createElement("div",{className:m.buttons},n.createElement(c.Z,{className:(0,l.Z)("button button--outline button--secondary button--lg",m.getStarted),to:(0,i.Z)("docs/getting-started")},"Get Started")))),n.createElement("main",null,u&&u.length&&n.createElement("section",{className:m.features},n.createElement("div",{className:"container"},n.createElement("div",{className:"row"},u.map((function(e,t){return n.createElement(p,(0,r.Z)({key:t},e))})))))))}}}]); \ No newline at end of file diff --git a/assets/js/d589d3a7.2aa061c7.js b/assets/js/d589d3a7.2aa061c7.js new file mode 100644 index 0000000..5a65911 --- /dev/null +++ b/assets/js/d589d3a7.2aa061c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[162],{4137:function(e,t,r){r.d(t,{Zo:function(){return c},kt:function(){return f}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),u=s(r),d=a,f=u["".concat(l,".").concat(d)]||u[d]||m[d]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[u]="string"==typeof e?e:a,i[1]=p;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),p=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=p(e.components);return a.createElement(o.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,m=d(e,["components","mdxType","originalType","parentName"]),u=p(n),c=r,k=u["".concat(o,".").concat(c)]||u[c]||s[c]||l;return n?a.createElement(k,i(i({ref:t},m),{},{components:n})):a.createElement(k,i({ref:t},m))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=c;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d[u]="string"==typeof e?e:r,i[1]=d;for(var p=2;p$query parameter",id:"query-parameter",level:2},{value:"by city name",id:"by-city-name",level:3},{value:"by city id",id:"by-city-id",level:3},{value:"by zip code",id:"by-zip-code",level:3},{value:"by coordinates",id:"by-coordinates",level:3},{value:"$weather object",id:"weather-object",level:2},{value:"Retrieving raw data",id:"retrieving-raw-data",level:2},{value:"HTML",id:"html",level:3},{value:"JSON",id:"json",level:3},{value:"XML",id:"xml",level:3}],s={toc:u},c="wrapper";function k(e){var t=e.components,n=(0,r.Z)(e,i);return(0,l.kt)(c,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"This API allows you to retrieve the current weather data."),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},(0,l.kt)("a",{parentName:"p",href:"https://openweathermap.org/current"},"Corresponding OpenWeatherMap Documentation"))),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"$owm->getWeather()")," method takes the following parameters:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Default"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$query")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"mixed")),(0,l.kt)("td",{parentName:"tr",align:null},"--"),(0,l.kt)("td",{parentName:"tr",align:null},"See below")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$units")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},'"imperial"'),"|",(0,l.kt)("inlineCode",{parentName:"td"},'"metric"')),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},'"imperial"')),(0,l.kt)("td",{parentName:"tr",align:null},"Units to use")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$lang")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"en")),(0,l.kt)("td",{parentName:"tr",align:null},"One of the languages listed at the very bottom of ",(0,l.kt)("a",{parentName:"td",href:"https://openweathermap.org/current#multi"},"the official documentation"))))),(0,l.kt)("h2",{id:"query-parameter"},(0,l.kt)("inlineCode",{parentName:"h2"},"$query")," parameter"),(0,l.kt)("p",null,"The first parameter determines the location to get weather data from.\nSeveral possible approaches are possible:"),(0,l.kt)("h3",{id:"by-city-name"},"by city name"),(0,l.kt)("p",null,"Specifying the country is optional."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$weather = $owm->getWeather('Berlin,DE', $units, $lang);\n")),(0,l.kt)("h3",{id:"by-city-id"},"by city id"),(0,l.kt)("p",null,"One city id:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$weather = $owm->getWeather(2172797, $units, $lang);\n")),(0,l.kt)("p",null,"Multiple city ids"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"// WARNING: This uses a different method (getWeatherGroup) compared\n// to the other query formats (getWeather)!\n$weathers = $owm->getWeatherGroup([2172797, 2172798], $units, $lang);\nforeach ($weathers as $weather) {\n // Do something\n}\n")),(0,l.kt)("h3",{id:"by-zip-code"},"by zip code"),(0,l.kt)("p",null,"Specifying the country is optional."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"// Hyderabad, India\n$weather = $owm->getWeather('zip:500001,IN', $units, $lang);\n")),(0,l.kt)("h3",{id:"by-coordinates"},"by coordinates"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$weather = $owm->getWeather(['lat' => 77.73038, 'lon' => 41.89604],\n $units, $lang);\n")),(0,l.kt)("h2",{id:"weather-object"},(0,l.kt)("inlineCode",{parentName:"h2"},"$weather")," object"),(0,l.kt)("p",null,"The returned object is an instance of ",(0,l.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\CurrentWeather"),".\nIt provides the following data:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"lastUpdate")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\\u1e10ateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"When the data was last updated")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Note: This should be named ",(0,l.kt)("inlineCode",{parentName:"td"},"temperature->avg")," and is only named ",(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")," for backwards compatibility! Returns the average current temperature for the given location (i.e, a big city might have multiple temperature measurement stations)")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->min")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum current temperature for the given locaiton")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->max")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum current temperature for the given locaiton")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"pressure")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Air pressure")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"humidity")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Humidity")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"sun->rise")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"Time of sunrise")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"sun->set")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"Time of sunset")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"wind->speed")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Wind speed")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"wind->direction")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Wind direction")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"clouds")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Cloudiness in percent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"precipitation")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Recent precipitation")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"weather->id")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"int")),(0,l.kt)("td",{parentName:"tr",align:null},"Current weather phenomenon id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"weather->description")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"Current weather description")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"weather->icon")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"Current weather icon name. Use ",(0,l.kt)("inlineCode",{parentName:"td"},"weather->getIconUrl()")," to get the url to an icon from OpenWeatherMap")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->id")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"int")),(0,l.kt)("td",{parentName:"tr",align:null},"Internal city id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->name")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"Name of the city")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->country")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"City country code")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->timezone")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeZone"),"|",(0,l.kt)("inlineCode",{parentName:"td"},"null")),(0,l.kt)("td",{parentName:"tr",align:null},"City timezone")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->lon")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"float")),(0,l.kt)("td",{parentName:"tr",align:null},"City longitude")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->lat")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"float")),(0,l.kt)("td",{parentName:"tr",align:null},"City latitude")))),(0,l.kt)("h2",{id:"retrieving-raw-data"},"Retrieving raw data"),(0,l.kt)("h3",{id:"html"},"HTML"),(0,l.kt)("p",null,"You can also request the data as an HTML page:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$html = $owm->getRawWeatherData('Berlin', $units, $lang, null, 'html');\n")),(0,l.kt)("p",null,"Result:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-html"},'\n\n\n \n \n \n \n \n \n\n\n
Berlin
\n
\n
\n
\n title\n
\n
\n
12.73\xb0C
\n
\n
\n
\n
Clouds: 89%
\n
Humidity: 62%
\n
Wind: 6.2 m/s
\n
Pressure: 1014hpa
\n
\n
\n More..\n
\n
+

API Key

All requests require a free API key (sometimes called "APPID") from OpenWeaterMap. +To retrieve your API key, sign up for an OpenWeatherMap account.

After you received your API key, it might take a "couple of hours" for it to be activated! Other users reported that it took about 10 minutes until the API key worked.

Please also take note of the license OpenWeatherMap provides the data under. At the time of +writing, all data is licensed under the CC BY-SA 4.0, even for paid accounts. However, +remember that this project is not affiliated with OpenWeatherMap, this information may be +outdated and I can't give you legal advice. Make sure to check on the terms and conditions +yourself:

If something with your API key or account does not work as expected, +please contact OpenWeatherMap directly +instead of opening an issue, since I most likely cannot help you with your account.

+ + + + \ No newline at end of file diff --git a/docs/apis/air-pollution/index.html b/docs/apis/air-pollution/index.html new file mode 100644 index 0000000..e4c576f --- /dev/null +++ b/docs/apis/air-pollution/index.html @@ -0,0 +1,22 @@ + + + + + +Air Pollution API | OpenWeatherMap PHP API + + + + +
+

Air Pollution API

This API allows you to retrieve the current, forecast and historic ultraviolet index (UV index).

Corresponding OpenWeatherMap documentation:

Usage

  • $type: Can be one of "O3", "NO2", "SO2", or "CO".
  • $lat / $lng: Latitude and longitude must be provided as strings, because +the number of digits after the decimal point determines the search radius. +Specifying more digits leads to closer results, but too many digits can lead +to no result at all.
  • $date: Date to retrieve data from. "current" requests the newest available +information. You can also specify a date in ISO 8601 format. More information on +that can be found in the OpenWeatherMap documentation.
// $type =
$co = $owm->getAirPollution($type, $lat, $lng, $date = "current");

The return value depends on the $type and is discussed in the next sections.

Carbon Monoxide (CO)

$co = $owm->getAirPollution("CO", "52", "13");
if ($co === null) {
// No data available
} else {
foreach ($co->values as $data) {
echo $data["value"];
echo $data["value"]->getPrecision();
echo $data["pressure"];
}
}

Ozone (O3)

$o3 = $owm->getAirPollution("O3", "52", "13");
if ($o3 === null) {
// No data available
} else {
echo $o3->value;
}

Nitrogen Dioxide (NO2)

$no2 = $owm->getAirPollution("NO2", "52", "13");
if ($no2 === null) {
// No data available
} else {
echo $no2->value;
echo $no2->valueStratosphere;
echo $no2->valueTroposphere;
}

Sulfor Dioxide (SO2)

$so2 = $owm->getAirPollution("SO2", "52", "13");
if ($so2 === null) {
// No data available
} else {
foreach ($so2->values as $data) {
echo $data["value"];
echo $data["value"]->getPrecision();
echo $data["pressure"];
}
}
+ + + + \ No newline at end of file diff --git a/docs/apis/current-weather/index.html b/docs/apis/current-weather/index.html new file mode 100644 index 0000000..c27533d --- /dev/null +++ b/docs/apis/current-weather/index.html @@ -0,0 +1,19 @@ + + + + + +Current Weather API | OpenWeatherMap PHP API + + + + +
+

Current Weather API

This API allows you to retrieve the current weather data.

Corresponding OpenWeatherMap Documentation

The $owm->getWeather() method takes the following parameters:

NameTypeDefaultDescription
$querymixed--See below
$units"imperial"|"metric""imperial"Units to use
$langstringenOne of the languages listed at the very bottom of the official documentation

$query parameter

The first parameter determines the location to get weather data from. +Several possible approaches are possible:

by city name

Specifying the country is optional.

$weather = $owm->getWeather('Berlin,DE', $units, $lang);

by city id

One city id:

$weather = $owm->getWeather(2172797, $units, $lang);

Multiple city ids

// WARNING: This uses a different method (getWeatherGroup) compared
// to the other query formats (getWeather)!
$weathers = $owm->getWeatherGroup([2172797, 2172798], $units, $lang);
foreach ($weathers as $weather) {
// Do something
}

by zip code

Specifying the country is optional.

// Hyderabad, India
$weather = $owm->getWeather('zip:500001,IN', $units, $lang);

by coordinates

$weather = $owm->getWeather(['lat' => 77.73038, 'lon' => 41.89604],
$units, $lang);

$weather object

The returned object is an instance of Cmfcmf\OpenWeatherMap\CurrentWeather. +It provides the following data:

NameTypeDescription
lastUpdate\ḐateTimeInterfaceWhen the data was last updated
temperature->nowUnitNote: This should be named temperature->avg and is only named temperature->now for backwards compatibility! Returns the average current temperature for the given location (i.e, a big city might have multiple temperature measurement stations)
temperature->minUnitMinimum current temperature for the given locaiton
temperature->maxUnitMaximum current temperature for the given locaiton
pressureUnitAir pressure
humidityUnitHumidity
sun->rise\DateTimeInterfaceTime of sunrise
sun->set\DateTimeInterfaceTime of sunset
wind->speedUnitWind speed
wind->directionUnitWind direction
cloudsUnitCloudiness in percent
precipitationUnitRecent precipitation
weather->idintCurrent weather phenomenon id
weather->descriptionstringCurrent weather description
weather->iconstringCurrent weather icon name. Use weather->getIconUrl() to get the url to an icon from OpenWeatherMap
city->idintInternal city id
city->namestringName of the city
city->countrystringCity country code
city->timezone\DateTimeZone|nullCity timezone
city->lonfloatCity longitude
city->latfloatCity latitude

Retrieving raw data

HTML

You can also request the data as an HTML page:

$html = $owm->getRawWeatherData('Berlin', $units, $lang, null, 'html');

Result:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="keywords" content="weather, world, openweathermap, weather, layer" />
<meta name="description" content="A layer with current weather conditions in cities for world wide" />
<meta name="domain" content="openweathermap.org" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
</head>
<body>
<div style="font-size: medium; font-weight: bold; margin-bottom: 0px;">Berlin</div>
<div style="float: left; width: 130px;">
<div style="display: block; clear: left;">
<div style="float: left;" title="Titel">
<img height="45" width="45" style="border: medium none; width: 45px; height: 45px; background: url(&quot;http://openweathermap.org/img/w/04d.png&quot;) repeat scroll 0% 0% transparent;" alt="title" src="http://openweathermap.org/images/transparent.png"/>
</div>
<div style="float: left;">
<div style="display: block; clear: left; font-size: medium; font-weight: bold; padding: 0pt 3pt;" title="Current Temperature">12.73°C</div>
<div style="display: block; width: 85px; overflow: visible;"></div>
</div>
</div>
<div style="display: block; clear: left; font-size: small;">Clouds: 89%</div>
<div style="display: block; clear: left; color: gray; font-size: x-small;" >Humidity: 62%</div>
<div style="display: block; clear: left; color: gray; font-size: x-small;" >Wind: 6.2 m/s</div>
<div style="display: block; clear: left; color: gray; font-size: x-small;" >Pressure: 1014hpa</div>
</div>
<div style="display: block; clear: left; color: gray; font-size: x-small;">
<a href="http://openweathermap.org/city/2950159?utm_source=openweathermap&utm_medium=widget&utm_campaign=html_old" target="_blank">More..</a>
</div>
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-31601618-9', 'auto');ga('send', 'pageview');</script>
</body>
</html>

JSON

$json = $owm->getRawWeatherData('Berlin', 'metric', 'de', null, 'json');

Result:

{
"coord":{"lon":13.41,"lat":52.52},
"weather":[{"id":804,"main":"Clouds","description":"Bedeckt","icon":"04d"}],
"base":"stations",
"main":{"temp":12.73,"feels_like":7.4,"temp_min":11.67,
"temp_max":13.89,"pressure":1014,"humidity":62},
"visibility":10000,
"wind":{"speed":6.2,"deg":200},
"clouds":{"all":89},
"dt":1579089181,
"sys":{"type":1,"id":1275,"country":"DE","sunrise":1579072219,"sunset":1579101619},
"timezone":3600,
"id":2950159,
"name":"Berlin",
"cod":200
}

XML

$xml = $owm->getRawWeatherData('Berlin', 'metric', 'de', null, 'xml');

Result:

<?xml version="1.0" encoding="UTF-8"?>
<current><city id="2950159" name="Berlin"><coord lon="13.41" lat="52.52"></coord><country>DE</country><timezone>3600</timezone><sun rise="2020-01-15T07:10:19" set="2020-01-15T15:20:19"></sun></city><temperature value="12.73" min="11.67" max="13.89" unit="celsius"></temperature><feels_like value="7.4" unit="celsius"></feels_like><humidity value="62" unit="%"></humidity><pressure value="1014" unit="hPa"></pressure><wind><speed value="6.2" unit="m/s" name="Moderate breeze"></speed><gusts></gusts><direction value="200" code="SSW" name="South-southwest"></direction></wind><clouds value="89" name="Bedeckt"></clouds><visibility value="10000"></visibility><precipitation mode="no"></precipitation><weather number="804" value="Bedeckt" icon="04d"></weather><lastupdate value="2020-01-15T11:53:01"></lastupdate></current>
+ + + + \ No newline at end of file diff --git a/docs/apis/uv-index/index.html b/docs/apis/uv-index/index.html new file mode 100644 index 0000000..0c36ba7 --- /dev/null +++ b/docs/apis/uv-index/index.html @@ -0,0 +1,19 @@ + + + + + +Ultraviolet Index API | OpenWeatherMap PHP API + + + + +
+

Ultraviolet Index API

This API allows you to retrieve the current, forecast and historic ultraviolet index (UV index).

Corresponding OpenWeatherMap Documentation

Current UV index

You can retrieve the current UV index by latitude and longitude. The response includes +the time, location and UV index value.

$uvIndex = $owm->getCurrentUVIndex($lat, $lon);

Example

Get the current UV index in Berlin.

$uvIndex = $owm->getCurrentUVIndex(52.520008, 13.404954);
echo "Current UV index: $uvIndex->uvIndex";

Forecast UV index

You can retrieve a UV index forecast for up to 8 days. The return value is an +array of UVIndex objects.

$uvForecast = $owm->getForecastUVIndex($lat, $lon, $cnt = 8)

Example

$forecast = $owm->getForecastUVIndex(52.520008, 13.404954);
foreach ($forecast as $day) {
echo "{$day->time->format('r')} will have an uv index of: $day->uvIndex";
}

Historic UV index

You can retrieve daily historic UV index data starting in June 2017.

$history = $owm->getHistoricUVIndex($lat, $lon, $from, $to);

Example

Retrieve one month of four month old historic UV data of Berlin.

$history = $owm->getHistoricUVIndex(52.520008, 13.404954,
new DateTime('-4month'),
new DateTime('-3month'));
foreach ($history as $day) {
echo "{$day->time->format('r')} had an uv index of: $day->uvIndex";
}
+ + + + \ No newline at end of file diff --git a/docs/apis/weather-forecast/index.html b/docs/apis/weather-forecast/index.html new file mode 100644 index 0000000..2458801 --- /dev/null +++ b/docs/apis/weather-forecast/index.html @@ -0,0 +1,19 @@ + + + + + +Weather Forecast API | OpenWeatherMap PHP API + + + + +
+

Weather Forecast API

This API allows you to retrieve 16-day/daily and 5-day/3-hourly weather forecasts.

Corresponding OpenWeatherMap Documentation:

The $owm->getWeatherForecast() method takes the following parameters:

NameTypeDefaultDescription
$querymixed--See below
$units"imperial"|"metric""imperial"Units to use
$langstringenOne of the languages listed at the very bottom of the official documentation
$appidstring''Deprecated, always set to ''
$daysint (1 - 16)1Number of days to retrieve the forecast for. If $days is between 1 and 5, the 5-day/3-hourly forecast API is used. If $days is between 6 and 16, the 16-day/daily forecast API is used.

You can use ->getDailyWeatherForecast() if instead if you want to retrieve a daily forecast even when a 3-horuly forecast is available.

$query parameter

The first parameter determines the location to get weather data from. +Several possible approaches are possible:

by city name

Specifying the country is optional.

$forecasts = $owm->getWeatherForecast('Berlin,DE', $units, $lang, '', $days);

by city id

One city id:

$forecasts = $owm->getWeatherForecast(2172797, $units, $lang, '', $days);

by zip code

Specifying the country is optional.

// Hyderabad, India
$forecasts = $owm->getWeatherForecast('zip:500001,IN', $units, $lang, '', $days);

by coordinates

$forecasts = $owm->getWeatherForecast(['lat' => 77.73038, 'lon' => 41.89604],
$units, $lang, '', $days);

$forecasts object

The $forecasts is an instance of Cmfcmf\OpenWeatherMap\WeatherForecast. +It provides the following data:

NameTypeDescription
lastUpdate\ḐateTimeInterfaceWhen the data was last updated
city->idintInternal city id
city->namestringName of the city
city->countrystringCity country code
city->timezone\DateTimeZone|nullCity timezone
city->lonfloatCity longitude
city->latfloatCity latitude

To retrieve the forecasts, iterate over the object:

foreach ($forecasts as $forecast) {
// Do something
}

$forecast object

The $forecast is an instance of Cmfcmf\OpenWeatherMap\Forecast that extends the Cmfcmf\OpenWeatherMap\CurrentWeather object.

NameTypeDescription
time->day\DateTimeInterfaceThe day of the forecast
time->from\DateTimeInterfaceThe exact start time of the forecast. For 16-day/daily forecasts, this corresponds to time->day. For 5-day/3-hourly forecasts, it corresponds to the start of the 3-hour window.
time->to\DateTimeInterfaceThe exact end time of the forecast. For 16-day/daily forecasts, this corresponds to time->day at 23:59:59. For 5-day/3-hourly forecasts, it corresponds to the end of the 3-hour window.
......All other properties from the CurrentWeather object, as described here.

only for 5-day/3-hourly forecasts

NameTypeDescription
temperature->nowUnitNote: This should be named temperature->avg and is only named temperature->now for backwards compatibility! Returns the average temperature for the given location (i.e, a big city might have multiple temperature measurement stations)
temperature->minUnitMinimum temperature for the given locaiton
temperature->maxUnitMaximum temperature for the given locaiton

only for 16-day/hourly forecasts

NameTypeDescription
temperature->morningUnitTemperature at morning
temperature->nowUnitTemperature at day
temperature->eveningUnitTemperature at evening
temperature->nightUnitTemperature at night
temperature->minUnitMinimum temperature at day
temperature->maxUnitMaximum temperature at day
+ + + + \ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html new file mode 100644 index 0000000..10988e8 --- /dev/null +++ b/docs/getting-started/index.html @@ -0,0 +1,22 @@ + + + + + +Getting Started | OpenWeatherMap PHP API + + + + +
+

Getting Started

OpenWeatherMap PHP API is a PHP client for weather APIs from OpenWeatherMap.org.

This project aims to normalise the provided data and remove inconsistencies. +It is not maintained by OpenWeatherMap and not an official API wrapper.

Please note that only the following APIs are supported:

I am open for pull requests to add support for other APIs from OpenWeatherMap +as long as they do not require a paid subscription. That is because I have no +means to test paid APIs without paying myself.

PHP Requirements

  • PHP 7.1 and later (including PHP 8) (if you are still on PHP 5.x, you'll have to use version 2.x of this library)
  • PHP json extension
  • PHP libxml extension
  • PHP simplexml extension

Installation

This project can be found on Packagist +and is best installed using Composer:

composer require "cmfcmf/openweathermap-php-api"

Required PSR-17/-18 dependencies

You will also need to have two additional dependencies installed:

  1. A PSR-17 compatible HTTP factory implementation.
  2. A PSR-18 compatible HTTP client implementation.

I you are integrating this project into a PHP framework, it most likely already comes with these. +Otherwise, go through the lists of implementations on Packagist and choose ones that fit your project:

If you don't know which to choose, try these:

composer require "http-interop/http-factory-guzzle:^1.0" \
"php-http/guzzle6-adapter:^2.0 || ^1.0"
+ + + + \ No newline at end of file diff --git a/docs/usage/index.html b/docs/usage/index.html new file mode 100644 index 0000000..be6bad2 --- /dev/null +++ b/docs/usage/index.html @@ -0,0 +1,28 @@ + + + + + +Usage | OpenWeatherMap PHP API + + + + +
+

Usage

All APIs can be accessed through the Cmfcmf\OpenWeatherMap object. +To construct this object, you need to supply your API key, the PSR-18-compatible +HTTP client and the PSR-17-compatible HTTP request factory:

use Cmfcmf\OpenWeatherMap;

$owm = new OpenWeatherMap('YOUR-API-KEY', $httpClient, $httpRequestFactory);

Note: From now on, we will refer to the instance of Cmfcmf\OpenWeatherMap as $owm.

Example

<?php
use Cmfcmf\OpenWeatherMap;
use Cmfcmf\OpenWeatherMap\Exception as OWMException;
use Http\Factory\Guzzle\RequestFactory;
use Http\Adapter\Guzzle6\Client as GuzzleAdapter;

// If you are not using a PHP framework that has included Composer's autoloader for you,
// you'll need to `require` the autoloader script before working with this API:
require 'vendor/autoload.php';

// If you installed the recommended PSR-17/18 implementations, here's how to create the
// necessary `$httpClient` and `$httpRequestFactory`:
$httpRequestFactory = new RequestFactory();
$httpClient = GuzzleAdapter::createWithConfig([]);

$owm = new OpenWeatherMap('YOUR-API-KEY', $httpClient, $httpRequestFactory);

try {
$weather = $owm->getWeather('Berlin', 'metric', 'de');
} catch(OWMException $e) {
echo 'OpenWeatherMap exception: ' . $e->getMessage() . ' (Code ' . $e->getCode() . ').';
} catch(\Exception $e) {
echo 'General exception: ' . $e->getMessage() . ' (Code ' . $e->getCode() . ').';
}

echo $weather->temperature;

Unit objects

Most values like temperature, precipitation, etc., are returned as instances of the +Cmfcmf\OpenWeatherMap\Util\Unit class. These objects provide you with +the value (e.g., 26.9), +the unit (e.g., °C), +and sometimes a description (e.g., heavy rain). +To make this clearer, let's look at a concrete example:

$weather = $owm->getWeather('Berlin', 'metric');
// @var Cmfcmf\OpenWeatherMap\Util\Unit $temperature
$temperature = $weather->temperature->now;

$temperature->getValue(); // 26.9
$temperature->getUnit(); // "°C"
$temperature->getDescription(); // ""
$temperature->getFormatted(); // "26.9 °C"
$temperature->__toString(); // "26.9 °C"

Caching requests

You can automatically cache requests by supplying a PSR-6-compatible +cache as the fourth constructor parameter and the time to live as the fifth parameter:

use Cmfcmf\OpenWeatherMap;

// Cache time in seconds, defaults to 600 = 10 minutes.
$ttl = 600;

$owm = new OpenWeatherMap('YOUR-API-KEY', $httpClient, $httpRequestFactory,
$cache, $ttl);

You can check whether the last request was cached by calling ->wasCached():

$owm->getRawWeatherData('Berlin');

if ($owm->wasCached()) {
echo "last request was cached";
} else {
echo "last request was not cached";
}

Exception handling

Make sure to handle exceptions appropriately. +Whenever the OpenWeatherMap API returns an exception, it is converted into an instance of +Cmfcmf\OpenWeatherMap\Exception. +As a special case, the API will throw a Cmfcmf\OpenWeatherMap\NotFoundException if the city/location/coordinates you are querying cannot be found. This exception inherits from Cmfcmf\OpenWeatherMap\Exception.

If anything else goes wrong, an exception inheriting from \Exception is thrown.

use Cmfcmf\OpenWeatherMap\Exception as OWMException;
use Cmfcmf\OpenWeatherMap\NotFoundException as OWMNotFoundException;

try {
$weather = $owm->getWeather('Berlin');
} catch (OWMNotFoundException $e) {
// TODO: Handle "city was not found" exception
// You can opt to skip the handler for `OWMNotFoundException`, because it extends `OWMException`.
} catch (OWMException $e) {
// TODO: Handle API exception
} catch (\Exception $e) {
// TODO: Handle general exception
}
+ + + + \ No newline at end of file diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..24f280c6aeccd44557a861f4c85bafe9239a3967 GIT binary patch literal 321988 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 literal 0 HcmV?d00001 diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 0000000..e54edfa --- /dev/null +++ b/img/logo.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..c6c4893 --- /dev/null +++ b/index.html @@ -0,0 +1,17 @@ + + + + + +OpenWeatherMap PHP API | OpenWeatherMap PHP API + + + + +
+

OpenWeatherMap PHP API

A PHP API to parse weather data and weather history from OpenWeatherMap.org.

Supports most free APIs

This project comes with support for five of the most popular free APIs:

  • Current Weather Data
  • 16-day/daily Forecast Data
  • 5-day/3-hourly Forecast Data
  • Air Pollution (CO, O3, SO2, NO2) Data
  • Ultraviolet Index Data

Easy to Use

The OpenWeatherMap APIs are poorly documented and oftentimes not easy to use. This project provides the necessary abstractions to make working with the API feel like a breeze.

Powered by modern PHP

Since version 3.x, this project works with PHP 7.x. It uses PSR-17 and PSR-18 for HTTP requests, as well as PSR-6 for caching.

+ + + + \ No newline at end of file diff --git a/search-index-docs-default-current.json b/search-index-docs-default-current.json new file mode 100644 index 0000000..81a12c9 --- /dev/null +++ b/search-index-docs-default-current.json @@ -0,0 +1 @@ +{"documents":[{"id":1,"pageTitle":"API Key","sectionTitle":"API Key","sectionRoute":"/OpenWeatherMap-PHP-API/docs/api-key","type":"docs"},{"id":2,"pageTitle":"Air Pollution API","sectionTitle":"Air Pollution API","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution","type":"docs"},{"id":3,"pageTitle":"Air Pollution API","sectionTitle":"Usage","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#usage","type":"docs"},{"id":4,"pageTitle":"Air Pollution API","sectionTitle":"Carbon Monoxide (CO)","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#carbon-monoxide-co","type":"docs"},{"id":5,"pageTitle":"Air Pollution API","sectionTitle":"Ozone (O3)","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#ozone-o3","type":"docs"},{"id":6,"pageTitle":"Air Pollution API","sectionTitle":"Nitrogen Dioxide (NO2)","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#nitrogen-dioxide-no2","type":"docs"},{"id":7,"pageTitle":"Air Pollution API","sectionTitle":"Sulfor Dioxide (SO2)","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#sulfor-dioxide-so2","type":"docs"},{"id":34,"pageTitle":"Current Weather API","sectionTitle":"Current Weather API","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather","type":"docs"},{"id":35,"pageTitle":"Current Weather API","sectionTitle":"$query parameter","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#query-parameter","type":"docs"},{"id":36,"pageTitle":"Current Weather API","sectionTitle":"by city name","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#by-city-name","type":"docs"},{"id":37,"pageTitle":"Current Weather API","sectionTitle":"by city id","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#by-city-id","type":"docs"},{"id":38,"pageTitle":"Current Weather API","sectionTitle":"by zip code","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#by-zip-code","type":"docs"},{"id":39,"pageTitle":"Current Weather API","sectionTitle":"by coordinates","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#by-coordinates","type":"docs"},{"id":40,"pageTitle":"Current Weather API","sectionTitle":"$weather object","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#weather-object","type":"docs"},{"id":41,"pageTitle":"Current Weather API","sectionTitle":"Retrieving raw data","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#retrieving-raw-data","type":"docs"},{"id":42,"pageTitle":"Current Weather API","sectionTitle":"HTML","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#html","type":"docs"},{"id":43,"pageTitle":"Current Weather API","sectionTitle":"JSON","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#json","type":"docs"},{"id":44,"pageTitle":"Current Weather API","sectionTitle":"XML","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#xml","type":"docs"},{"id":18,"pageTitle":"Ultraviolet Index API","sectionTitle":"Ultraviolet Index API","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index","type":"docs"},{"id":19,"pageTitle":"Ultraviolet Index API","sectionTitle":"Current UV index","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#current-uv-index","type":"docs"},{"id":20,"pageTitle":"Ultraviolet Index API","sectionTitle":"Example","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#example","type":"docs"},{"id":21,"pageTitle":"Ultraviolet Index API","sectionTitle":"Forecast UV index","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#forecast-uv-index","type":"docs"},{"id":22,"pageTitle":"Ultraviolet Index API","sectionTitle":"Example","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#example-1","type":"docs"},{"id":23,"pageTitle":"Ultraviolet Index API","sectionTitle":"Historic UV index","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#historic-uv-index","type":"docs"},{"id":24,"pageTitle":"Ultraviolet Index API","sectionTitle":"Example","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#example-2","type":"docs"},{"id":8,"pageTitle":"Weather Forecast API","sectionTitle":"Weather Forecast API","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast","type":"docs"},{"id":9,"pageTitle":"Weather Forecast API","sectionTitle":"$query parameter","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#query-parameter","type":"docs"},{"id":10,"pageTitle":"Weather Forecast API","sectionTitle":"by city name","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#by-city-name","type":"docs"},{"id":11,"pageTitle":"Weather Forecast API","sectionTitle":"by city id","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#by-city-id","type":"docs"},{"id":12,"pageTitle":"Weather Forecast API","sectionTitle":"by zip code","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#by-zip-code","type":"docs"},{"id":13,"pageTitle":"Weather Forecast API","sectionTitle":"by coordinates","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#by-coordinates","type":"docs"},{"id":14,"pageTitle":"Weather Forecast API","sectionTitle":"$forecasts object","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#forecasts-object","type":"docs"},{"id":15,"pageTitle":"Weather Forecast API","sectionTitle":"$forecast object","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#forecast-object","type":"docs"},{"id":16,"pageTitle":"Weather Forecast API","sectionTitle":"only for 5-day/3-hourly forecasts","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#only-for-5-day3-hourly-forecasts","type":"docs"},{"id":17,"pageTitle":"Weather Forecast API","sectionTitle":"only for 16-day/hourly forecasts","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#only-for-16-dayhourly-forecasts","type":"docs"},{"id":25,"pageTitle":"Getting Started","sectionTitle":"Getting Started","sectionRoute":"/OpenWeatherMap-PHP-API/docs/getting-started","type":"docs"},{"id":26,"pageTitle":"Getting Started","sectionTitle":"PHP Requirements","sectionRoute":"/OpenWeatherMap-PHP-API/docs/getting-started#php-requirements","type":"docs"},{"id":27,"pageTitle":"Getting Started","sectionTitle":"Installation","sectionRoute":"/OpenWeatherMap-PHP-API/docs/getting-started#installation","type":"docs"},{"id":28,"pageTitle":"Getting Started","sectionTitle":"Required PSR-17/-18 dependencies","sectionRoute":"/OpenWeatherMap-PHP-API/docs/getting-started#required-psr-17-18-dependencies","type":"docs"},{"id":29,"pageTitle":"Usage","sectionTitle":"Usage","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage","type":"docs"},{"id":30,"pageTitle":"Usage","sectionTitle":"Example","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage#example","type":"docs"},{"id":31,"pageTitle":"Usage","sectionTitle":"Unit objects","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage#unit-objects","type":"docs"},{"id":32,"pageTitle":"Usage","sectionTitle":"Caching requests","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage#caching-requests","type":"docs"},{"id":33,"pageTitle":"Usage","sectionTitle":"Exception handling","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage#exception-handling","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content","tags"],"fieldVectors":[["title/1",[0,1.026,1,2.149]],["content/1",[0,1.548,1,3.243,2,1.26,3,1.26,4,2.392,5,2.032,6,2.032,7,2.032,8,2.392,9,0.901,10,2.392,11,2.032,12,1.959,13,4.884,14,2.392,15,2.722,16,2.392,17,2.032,18,2.392,19,2.392,20,2.392,21,2.392,22,2.032,23,2.032,24,2.392,25,3.08,26,3.08,27,1.478,28,3.625,29,1.361,30,1.069,31,3.625,32,1.26,33,2.392,34,2.392,35,2.392,36,2.392,37,1.796,38,2.032,39,2.392,40,1.619,41,2.392,42,2.032,43,2.392,44,2.392,45,2.392,46,2.392,47,2.392,48,1.796,49,2.032,50,2.032,51,2.392,52,2.032,53,2.392,54,2.392,55,2.392,56,1.796,57,2.392,58,2.392,59,2.392,60,2.032,61,2.032,62,2.392,63,2.392]],["tags/1",[]],["title/2",[0,0.856,64,2.18,65,2.467]],["content/2",[0,1.211,9,1.546,12,1.647,66,2.78,67,1.647,68,1.073,69,2.537,70,2.78,71,1.877,72,1.647,73,2.537,74,2.537,75,3.489,76,3.489,77,2.537,78,3.489,79,2.537,80,3.489,81,3.981,82,2.537,83,3.489,84,2.537]],["tags/2",[]],["title/3",[85,3.685]],["content/3",[2,1.418,9,1.014,12,1.08,29,1.531,30,0.794,42,3.364,67,1.588,74,1.663,77,2.446,79,1.663,82,1.663,84,1.663,86,2.301,87,1.418,88,2.972,89,0.579,90,3.959,91,1.822,92,1.822,93,1.663,94,2.287,95,4.696,96,2.691,97,2.691,98,2.021,99,2.691,100,2.691,101,2.446,102,3.959,103,3.959,104,2.691,105,2.68,106,2.691,107,5.178,108,2.691,109,1.531,110,2.691,111,2.691,112,2.287,113,2.021,114,0.334,115,2.691,116,1.531,117,1.319,118,2.021,119,2.691,120,2.691,121,2.691]],["tags/3",[]],["title/4",[75,2.467,76,2.467,77,1.794]],["content/4",[30,1.506,77,3.529,89,0.711,109,2.204,114,0.481,117,1.898,122,3.874,123,2.623,124,2.623,125,2.041,126,2.204,127,2.611,128,4.339,129,3.292,130,3.292]],["tags/4",[]],["title/5",[78,2.955,79,2.149]],["content/5",[30,1.288,79,3.736,89,0.712,109,2.484,114,0.542,117,2.14,123,2.956,124,2.956,125,2.3,127,1.997,131,4.367]],["tags/5",[]],["title/6",[80,2.467,81,2.18,82,1.794]],["content/6",[30,1.197,82,3.956,89,0.7,109,2.308,114,0.504,117,1.988,123,2.747,124,2.747,125,2.137,127,2.67,132,4.057,133,4.057,134,4.057]],["tags/6",[]],["title/7",[81,2.18,83,2.467,84,1.794]],["content/7",[30,1.506,84,3.529,89,0.711,109,2.204,114,0.481,117,1.898,123,2.623,124,2.623,125,2.041,126,2.204,127,2.611,128,4.339,129,3.292,130,3.292,135,3.874]],["tags/7",[]],["title/34",[0,0.856,67,1.165,136,0.806]],["content/34",[0,1.038,9,1.325,12,1.411,15,2.641,30,1.038,66,2.381,67,1.411,73,2.174,74,2.957,86,1.724,87,1.853,93,2.174,114,0.437,136,0.977,137,2.989,138,2.641,139,2.174,140,1.853,141,1.609,142,2.641,143,1.724,144,2.001,145,2.989,146,2.989,147,2.989,148,1.412,149,2.989,150,2.989,151,1.505,152,1.411,153,2.989,154,2.989,155,2.641,156,2.989,157,2.641,158,2.641]],["tags/34",[]],["title/35",[140,1.832,144,1.978]],["content/35",[30,1.454,98,3.702,136,1.369,140,2.597,159,4.19,160,3.047,161,4.19,162,5.051,163,4.19]],["tags/35",[]],["title/36",[141,1.59,164,1.395]],["content/36",[89,0.525,101,3.091,114,0.621,136,1.389,148,1.476,152,2.006,165,2.846,166,3.386,167,5.002]],["tags/36",[]],["title/37",[164,1.395,168,1.978]],["content/37",[56,2.669,87,1.872,89,0.678,112,3.02,114,0.598,126,2.022,136,1.628,137,3.02,138,2.669,144,2.022,148,1.422,151,1.521,152,1.933,164,1.933,168,2.741,169,3.554,170,2.669,171,3.554,172,3.554,173,3.554,174,3.554,175,3.554,176,3.554]],["tags/37",[]],["title/38",[177,2.955,178,2.149]],["content/38",[89,0.613,101,2.962,114,0.595,136,1.331,148,1.414,152,1.923,165,2.726,166,3.245,179,4.073,180,4.073,181,4.793]],["tags/38",[]],["title/39",[182,3.685]],["content/39",[89,0.665,114,0.603,136,1.35,148,1.434,152,1.95,183,4.861,184,4.131,185,2.561,186,4.131]],["tags/39",[]],["title/40",[136,0.966,187,1.488]],["content/40",[12,0.661,27,1.018,29,0.937,30,0.796,32,1.422,64,1.237,67,1.887,86,0.807,88,1.237,91,1.115,92,1.115,93,2.452,116,1.536,136,1.379,139,1.018,141,2.151,143,1.681,148,1.584,151,0.705,160,1.018,164,2.359,165,1.536,168,2.257,170,1.237,178,1.018,185,0.868,187,0.705,188,0.937,189,1.399,190,1.399,191,1.399,192,1.237,193,1.399,194,3.318,195,1.668,196,1.399,197,1.399,198,1.018,199,1.399,200,2.915,201,1.399,202,1.399,203,1.399,204,1.399,205,1.237,206,1.237,207,2.294,208,1.237,209,1.237,210,2.294,211,2.294,212,2.699,213,1.647,214,2.294,215,1.647,216,1.399,217,1.647,218,3.372,219,2.699,220,2.699,221,1.647,222,1.647,223,1.647,224,2.294,225,1.647,226,2.027,227,1.647,228,3.43,229,1.647,230,1.647,231,1.399,232,2.294,233,1.399,234,2.294]],["tags/40",[]],["title/41",[9,1.093,30,0.856,235,2.903]],["content/41",[]],["tags/41",[]],["title/42",[236,3.685]],["content/42",[2,0.679,12,0.517,30,0.38,52,1.095,67,0.517,89,0.436,105,0.872,114,0.16,125,0.679,136,0.611,148,0.38,152,0.517,157,0.968,164,0.517,210,1.095,211,1.095,218,1.095,236,3.531,237,1.289,238,0.872,239,1.289,240,1.289,241,2.199,242,4.155,243,1.289,244,0.872,245,1.289,246,1.289,247,2.199,248,2.199,249,1.289,250,1.289,251,1.289,252,1.289,253,1.289,254,1.651,255,1.289,256,1.289,257,0.968,258,1.289,259,1.289,260,1.095,261,2.199,262,5.833,263,1.289,264,4.436,265,2.876,266,4.674,267,2.199,268,2.199,269,1.289,270,1.289,271,2.876,272,5.054,273,2.876,274,1.289,275,4.674,276,4.674,277,4.436,278,1.289,279,1.289,280,1.289,281,1.289,282,1.289,283,1.289,284,2.199,285,1.289,286,1.289,287,1.289,288,1.289,289,1.289,290,2.199,291,1.289,292,1.289,293,1.289,294,1.289,295,1.289,296,1.289,297,1.289,298,1.289,299,1.289,300,1.289,301,1.289,302,1.289,303,1.289,304,3.399,305,3.399,306,3.399,307,3.399,308,1.289,309,1.289,310,1.289,311,1.289,312,1.289,313,1.289,314,1.289,315,1.289,316,1.289,317,1.289,318,1.289,319,1.289,320,1.289,321,1.289,322,1.289,323,1.289,324,1.289]],["tags/42",[]],["title/43",[325,3.256]],["content/43",[89,0.612,105,2.747,114,0.504,125,2.137,238,2.747,325,3.951,326,2.747,327,3.047,328,4.057,329,4.057,330,4.057,331,4.057,332,4.057,333,4.057,334,4.057,335,4.057,336,4.057,337,4.057,338,4.057,339,4.057,340,4.057,341,4.057]],["tags/43",[]],["title/44",[342,3.685]],["content/44",[89,0.323,105,2.083,114,0.382,125,1.621,238,2.083,244,2.083,326,2.083,327,2.31,342,4.304,343,3.077,344,3.077,345,3.077,346,3.077,347,3.077,348,3.077,349,3.077,350,3.077,351,5.065,352,3.077,353,3.077,354,3.077,355,3.077,356,3.077,357,3.077,358,3.077,359,3.077,360,3.077,361,3.077,362,3.077,363,3.077,364,3.077,365,3.077,366,3.077,367,3.077,368,3.077,369,3.077,370,3.077,371,3.077,372,3.077,373,3.077,374,3.077,375,3.077,376,3.077,377,3.077,378,3.077,379,3.077,380,3.077,381,3.077]],["tags/44",[]],["title/18",[0,0.856,70,1.965,71,1.028]],["content/18",[0,1.394,9,1.78,12,1.896,66,3.2,67,1.896,68,1.235,69,2.921,70,3.2,71,2.051,72,1.896,73,2.921,74,2.921]],["tags/18",[]],["title/19",[67,1.165,71,1.028,72,1.165]],["content/19",[9,1.666,32,2.33,67,1.774,71,1.968,72,2.23,89,0.464,91,2.994,92,2.994,114,0.549,117,2.167,160,2.733,185,2.33,382,4.423,383,3.321,384,2.733,385,4.423]],["tags/19",[]],["title/20",[386,2.679]],["content/20",[67,2.286,71,2.017,72,2.286,89,0.482,114,0.571,127,2.104,384,3.825,387,3.909,388,4.6,389,3.454]],["tags/20",[]],["title/21",[68,0.759,71,1.028,72,1.165]],["content/21",[9,1.624,11,3.664,68,1.127,71,1.526,72,1.73,89,0.574,114,0.535,116,2.453,117,2.113,185,2.271,187,1.845,244,3.704,384,2.665,390,1.845,391,4.312,392,4.312,393,4.312,394,4.312]],["tags/21",[]],["title/22",[386,2.679]],["content/22",[32,2.33,68,1.453,71,1.566,72,1.774,89,0.638,114,0.549,126,2.516,127,2.023,384,2.733,389,3.321,390,2.602,395,4.423,396,3.758]],["tags/22",[]],["title/23",[69,1.794,71,1.028,72,1.165]],["content/23",[9,1.756,30,1.375,69,2.882,71,1.651,72,1.87,89,0.489,114,0.579,185,2.456,397,3.962,398,3.501,399,4.663,400,4.663,401,3.962,402,4.663]],["tags/23",[]],["title/24",[386,2.679]],["content/24",[9,1.381,30,1.082,32,1.932,69,2.267,71,1.298,72,1.975,87,1.932,89,0.583,114,0.455,126,2.086,127,1.677,384,2.267,387,3.117,389,2.754,390,2.377,396,3.117,401,4.183,403,4.922,404,3.668,405,3.668,406,3.668,407,3.332,408,4.922,409,3.668,410,3.668]],["tags/24",[]],["title/8",[0,0.856,68,0.759,136,0.806]],["content/8",[0,1.229,7,1.876,9,1.569,12,0.885,15,1.657,37,1.657,60,1.876,66,1.494,68,1.506,73,1.364,74,2.107,86,1.082,87,1.163,89,0.357,93,2.107,94,1.876,109,1.256,114,0.274,136,0.613,138,1.657,139,1.364,140,1.163,141,1.009,142,1.657,143,1.082,144,1.256,145,1.876,146,1.876,147,1.876,148,1.006,149,1.876,150,1.876,151,2.004,152,0.885,153,1.876,154,1.876,155,1.657,156,1.876,157,1.657,158,1.657,216,1.876,226,1.657,260,3.539,390,2.004,397,1.876,411,3.427,412,3.127,413,3.171,414,2.82,415,2.82,416,2.207,417,2.207,418,2.207,419,3.409,420,1.876,421,2.207,422,2.207,423,1.876,424,2.207]],["tags/8",[]],["title/9",[140,1.832,144,1.978]],["content/9",[30,1.454,98,3.702,136,1.369,140,2.597,159,4.19,160,3.047,161,4.19,162,5.051,163,4.19]],["tags/9",[]],["title/10",[141,1.59,164,1.395]],["content/10",[68,1.27,89,0.618,101,3.004,114,0.603,148,1.434,152,1.95,165,2.765,166,3.291,390,2.08,425,4.861]],["tags/10",[]],["title/11",[164,1.395,168,1.978]],["content/11",[68,1.27,87,2.561,89,0.618,114,0.603,148,1.434,152,1.95,164,1.95,168,2.765,390,2.08,426,4.861]],["tags/11",[]],["title/12",[177,2.955,178,2.149]],["content/12",[68,1.219,89,0.653,101,2.882,114,0.579,148,1.375,152,1.87,165,2.653,166,3.157,179,3.962,180,3.962,390,1.995,427,4.663]],["tags/12",[]],["title/13",[182,3.685]],["content/13",[68,1.235,89,0.685,114,0.587,148,1.394,152,1.896,184,4.017,185,2.49,186,4.017,390,2.022,428,4.727]],["tags/13",[]],["title/14",[68,0.909,187,1.488]],["content/14",[9,1.1,29,1.661,30,1.239,56,2.192,68,1.406,86,1.431,88,2.192,89,0.516,91,1.977,92,1.977,93,2.596,126,1.661,139,1.804,141,2.25,143,1.431,164,2.656,165,2.39,168,2.39,178,1.804,185,1.538,187,1.249,188,1.661,190,2.481,191,2.481,192,2.192,193,2.481,226,2.192,231,2.481,232,3.57,233,2.481,234,3.57,429,2.92,430,2.92,431,2.92]],["tags/14",[]],["title/15",[68,0.909,187,1.488]],["content/15",[17,3.443,32,3.174,68,1.614,73,3.249,86,1.361,89,0.425,141,1.27,143,1.361,187,1.734,188,1.58,189,2.361,214,4.065,390,2.249,398,3.043,411,2.743,412,3.043,413,2.743,414,2.743,415,2.743,423,3.443,432,2.778,433,2.361,434,4.052,435,4.052,436,4.052,437,2.778,438,2.778,439,2.778,440,2.778,441,2.778]],["tags/15",[]],["title/16",[68,0.651,413,1.687,414,1.687,415,1.687]],["content/16",[27,2.109,86,1.672,116,1.941,141,2.448,143,1.672,148,1.579,160,2.109,164,1.369,170,2.563,194,4.083,195,2.897,196,2.9,197,2.9,198,2.109,199,2.9,200,4.55,201,2.9,202,2.9,203,2.9,204,2.9,205,2.563,206,2.563,207,3.983,208,2.563,209,2.563]],["tags/16",[]],["title/17",[68,0.759,411,1.965,442,2.903]],["content/17",[37,3.67,86,1.778,141,1.659,143,1.778,148,1.875,194,4.248,195,2.243,205,2.725,206,2.725,208,2.725,209,2.725,390,2.365,443,4.887,444,4.887]],["tags/17",[]],["title/25",[398,2.611,445,3.478]],["content/25",[0,1.741,2,1.512,3,1.512,12,1.955,26,2.44,27,1.774,29,1.633,30,1.224,38,3.527,40,1.944,61,2.44,64,2.156,65,2.44,67,1.152,68,0.75,70,1.944,71,1.016,77,1.774,79,1.774,82,1.774,84,1.774,136,1.152,139,1.774,158,2.156,411,1.944,412,2.156,413,1.944,414,1.944,415,1.944,446,2.361,447,2.156,448,2.871,449,2.871,450,2.871,451,2.871,452,2.871,453,2.871,454,2.871,455,4.15,456,2.871,457,2.871,458,2.871,459,2.871,460,2.871,461,2.871,462,2.871,463,2.871,464,2.871]],["tags/25",[]],["title/26",[3,1.832,446,1.978]],["content/26",[151,1.778,244,2.813,325,3.12,383,3.12,446,3.756,465,4.155,466,4.155,467,4.155,468,4.155,469,3.531,470,4.155,471,4.155,472,4.155,473,5.906,474,4.155,475,4.155]],["tags/26",[]],["title/27",[476,2.935]],["content/27",[0,1.414,3,2.525,40,3.245,113,3.599,151,2.051,446,2.726,476,3.245,477,4.073,478,4.793,479,4.965,480,4.793]],["tags/27",[]],["title/28",[3,1.15,118,1.639,481,1.349,482,1.639,483,1.639]],["content/28",[3,1.525,40,2.826,87,1.525,89,0.438,118,2.174,155,3.677,198,3.312,254,3.677,446,2.375,447,2.174,476,1.96,477,2.46,479,2.46,481,3.312,482,3.135,483,3.135,484,2.174,485,2.895,486,2.895,487,3.548,488,4.829,489,2.895,490,2.46,491,2.895,492,2.895,493,2.895,494,2.895,495,2.46,496,4.175,497,2.895,498,2.895,499,2.895,500,2.174,501,2.895,502,2.895,503,2.895,504,2.895,505,2.895]],["tags/28",[]],["title/29",[85,3.685]],["content/29",[0,1.604,1,2.957,2,1.853,27,2.174,89,0.369,114,0.594,151,1.505,187,2.048,188,2.001,195,2.174,198,2.957,254,3.593,407,2.381,447,2.641,481,2.957,482,2.641,483,2.641,484,2.641,487,2.989,495,2.989,506,3.517,507,4.084,508,3.517,509,2.989,510,2.641,511,2.641,512,2.641,513,3.517]],["tags/29",[]],["title/30",[386,2.679]],["content/30",[0,0.949,1,1.266,3,1.695,12,0.822,25,1.742,89,0.721,114,0.399,127,1.817,136,0.893,151,2.092,178,1.988,194,1.266,326,1.387,327,1.539,383,1.539,407,2.178,446,1.83,469,1.742,476,1.387,481,1.266,484,1.539,488,1.742,490,1.742,500,1.539,507,1.539,510,1.539,511,2.983,512,2.983,514,1.742,515,1.742,516,2.049,517,2.049,518,2.049,519,2.049,520,3.218,521,2.049,522,2.049,523,2.049,524,2.049,525,2.049,526,2.049,527,2.049,528,2.049,529,2.049,530,2.049,531,1.539,532,2.049,533,4.41,534,2.416,535,3.218,536,3.218,537,2.049,538,1.742]],["tags/30",[]],["title/31",[148,1.026,187,1.488]],["content/31",[5,2.38,29,1.593,48,2.103,89,0.662,114,0.348,116,1.593,117,1.997,136,1.132,143,1.372,148,0.826,187,1.198,188,1.593,194,3.9,195,1.731,224,2.38,326,1.896,386,1.731,531,2.103,539,2.801,540,4.076,541,2.801,542,4.805,543,5.277,544,5.277,545,2.801,546,2.801,547,2.801,548,2.801,549,2.801,550,2.801,551,2.801,552,2.801,553,2.801,554,2.801,555,2.801,556,2.801]],["tags/31",[]],["title/32",[2,1.832,257,2.611]],["content/32",[0,0.833,1,1.745,2,2.791,6,2.4,22,2.4,23,2.4,32,2.16,50,2.4,89,0.651,114,0.599,127,1.875,140,2.16,142,2.12,151,1.208,192,3.625,198,1.745,238,1.912,257,4.547,407,1.912,420,2.4,481,1.745,507,2.12,509,2.4,510,2.12,511,2.12,512,2.12,557,2.824,558,2.824,559,2.824,560,2.824,561,2.824,562,2.824,563,4.1,564,4.1,565,2.824,566,4.1]],["tags/32",[]],["title/33",[534,2.611,567,2.955]],["content/33",[0,1.308,12,0.98,48,1.834,49,2.076,89,0.67,113,2.765,114,0.303,116,1.39,136,0.678,144,1.39,151,1.576,164,0.98,188,1.39,433,2.076,500,1.834,514,3.768,515,3.768,531,1.834,533,3.768,534,4.571,538,2.076,567,4.195,568,2.443,569,2.443,570,2.443,571,2.443,572,2.443,573,2.443,574,3.683,575,2.443,576,3.683,577,2.443,578,2.443,579,2.443,580,2.443,581,4.433,582,4.433,583,4.433,584,2.443,585,2.443,586,2.443]],["tags/33",[]]],"invertedIndex":[["",{"_index":89,"title":{},"content":{"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"36":{},"37":{},"38":{},"39":{},"42":{},"43":{},"44":{}},"tags":{}}],["0",{"_index":290,"title":{},"content":{"42":{}},"tags":{}}],["01",{"_index":351,"title":{},"content":{"44":{}},"tags":{}}],["0pt",{"_index":295,"title":{},"content":{"42":{}},"tags":{}}],["0px;\">berlinde3600(function(i,s,o,g,r,a,m){i['googleanalyticsobject']=r;i[r]=i[r]||funct",{"_index":314,"title":{},"content":{"42":{}},"tags":{}}],["scroll",{"_index":289,"title":{},"content":{"42":{}},"tags":{}}],["search",{"_index":99,"title":{},"content":{"3":{}},"tags":{}}],["second",{"_index":562,"title":{},"content":{"32":{}},"tags":{}}],["section",{"_index":121,"title":{},"content":{"3":{}},"tags":{}}],["see",{"_index":146,"title":{},"content":{"8":{},"34":{}},"tags":{}}],["set",{"_index":216,"title":{},"content":{"8":{},"40":{}},"tags":{}}],["set=\"2020",{"_index":353,"title":{},"content":{"44":{}},"tags":{}}],["sever",{"_index":161,"title":{},"content":{"9":{},"35":{}},"tags":{}}],["sign",{"_index":10,"title":{},"content":{"1":{}},"tags":{}}],["simplexml",{"_index":475,"title":{},"content":{"26":{}},"tags":{}}],["size",{"_index":264,"title":{},"content":{"42":{}},"tags":{}}],["skip",{"_index":585,"title":{},"content":{"33":{}},"tags":{}}],["small",{"_index":307,"title":{},"content":{"42":{}},"tags":{}}],["small;\">cloud",{"_index":302,"title":{},"content":{"42":{}},"tags":{}}],["so2",{"_index":84,"title":{"7":{}},"content":{"2":{},"3":{},"7":{},"25":{}},"tags":{}}],["someth",{"_index":56,"title":{},"content":{"1":{},"14":{},"37":{}},"tags":{}}],["sometim",{"_index":5,"title":{},"content":{"1":{},"31":{}},"tags":{}}],["southwest\">more..12.73°chttps://christianflach.de/OpenWeatherMap-PHP-API/docs/api-keyweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/apis/air-pollutionweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/apis/current-weatherweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/apis/uv-indexweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/apis/weather-forecastweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/getting-startedweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/usageweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/weekly0.5 \ No newline at end of file